C には 3 種類の静的宣言があることを知っています。
1: 定数 - 定数静的変数、例: static const int i = 5;
2: 変更可能 - 通常の静的変数です。例: static int hi = 10;
これが私の質問です
「コード」の形をとる静的の別の形式があります。それはどういう意味ですか、例を挙げていただけますか?
ありがとうございました!
編集: static/const 変数はスタック/ヒープに格納されていますか?
多分あなたは静的関数について話しているのですか?
これは「静的」という言葉の特定の使用法であり、静的変数とはまったく異なります。
関数を「静的」と宣言すると、別のソース ファイルからリンクできないことを意味します。通常、一部の機能を「プライベート」に保つために使用されます。
[編集] 理論的には、ポインターを使用して関数コードに別のソース ファイルからアクセスすることもできますが、これは関数にアクセスするための通常の方法ではありません (そして確かに最も簡単ではありません)。それを指摘してくれた Eric Postpischil に感謝します。
残念なことに、同じ「静的」という言葉が C 標準で使用され、関数または変数に使用されるかどうかによって、2 つの異なる意味で使用されます。
[編集] : 別の質問ですが、とにかく: 静的変数の場合、それらはヒープにもスタックにも割り当てられません。それらは静的です。つまり、静的空間に割り当てられ、起動時にコンパイラによって直接割り当てられます。スタックは内部関数変数用であり、ヒープは malloc()/free() 用です。