C言語なら俺に聞け(入門篇) Part 27 at TECH
[2ch|▼Menu]
701:デフォルトの名無しさん
08/05/13 14:34:04
>>699
実装によっては可能かもしれないが、直接に行うことは一般的にはできない。
constな変数はそれが作成されたときに(関数の外で宣言される変数ならプログラムの開始時、あらゆる関数の外で)初期化されて
以後のコード中では変更できなくなるため、実質的にコンパイル時に解決可能な式でしか初期化できない。

ポインタを間にはさめば、以下のような方法で似たようなものを間接的に宣言することができる。

value.c)
 static int value;
 const int * const vp=&value;

value.h)
 extern const int * const vp;
 #define VALUE (*vp)

このようにしておけば、グローバル変数(のふりをしているマクロ)VALUEの実体であるvalueは、少なくともvalue.c以外で変更されることはない。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5373日前に更新/213 KB
担当:undef