Cで変数を宣言されたファイルにのみアクセスできるようにする方法はありますか?Cで変数を宣言されたファイルにしかアクセスできないようにする方法はありますか?
私はこれを行うことが可能であることをどこか読んで覚えているので、これを尋ねていますが、私は実際にそれを行う方法を覚えていません。それは可能ですか、それとも私は想像していますか?
Cで変数を宣言されたファイルにのみアクセスできるようにする方法はありますか?Cで変数を宣言されたファイルにしかアクセスできないようにする方法はありますか?
私はこれを行うことが可能であることをどこか読んで覚えているので、これを尋ねていますが、私は実際にそれを行う方法を覚えていません。それは可能ですか、それとも私は想像していますか?
キーワードstatic
を使用すると、グローバル変数の内部リンケージが得られます。つまり、の名前は他の翻訳単位には表示されません。しかし、これはあなたがその中を求めたものとは異なることに注意してください。
#include
ディレクティブで含まれています)からアクセスすることができます。static
と同じ変換単位に関数がある場合などです。静的あなたは
を探している単語は、静的なグローバルとしてそれを宣言しています。
static int foo;
int incrementfoo()
{
return ++foo;
}
static
キーワードはこれを行います。対照的に、extern
キーワードを使用すると、他のファイルから他の変数をインポートすることができます。
私はそれが 'static'キーワードだと思っていましたが、プログラムが実行を終了するまで変数を' static'にしておかないのですか?それは今私を混乱させる... – CupOfTea
'static'はCの多くの無関係なものに(残念なことに)使用されます。ブロック変数の場合は、変数の静的記憶期間が与えられます。グローバル変数(すでに静的な記憶期間がある)では、可視性を制御します。それはさらにC++でオーバーロードされています。 –