C言語なら俺に聞け(入門篇) Part 27
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
700:699 08/05/13 13:59:49 追記 環境変数のような働きをするグローバル変数です 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以外で変更されることはない。 702:デフォルトの名無しさん 08/05/13 15:17:07 あとは、取得用の関数を公開する形にして 当該の変数をstaticにしてほかのファイルからは見えないようにするとか、 const変数を動的初期化できるC++へ移ってしまうとかが考え付く。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5373日前に更新/213 KB
担当:undef