静的変数がC言語で宣言されているファイルを変更せずにファイル外に静的変数を更新します。静的変数をC内の別のファイルから更新します
Proj1がdllを作成します。 PROJ1はabc.h
ファイルを持っており、それは以下のように定義されます。
static BOOl stvar = False;//declared as global static variable
func1()
{
stvar= TRUE;
}
func2()
{
if(stvar == TRUE)
{
....
}
else
{
func1(); //call to func1 sets STVAR = TRUE;
}
}
Proj2は、exeファイルを作成します。それはファイルを持っています。次のようにファイルが定義されています
cprogfunc1()
{
func2(); //call to func2 sets STVAR = TRUE;
}
cprogfunc2()
{
stvar = FALSE;
func2();
}
我々はそれがABCのfunc2()
にelseブロックを実行させるためのcprogfunc2()
にfalseにstvar
を設定しています。 h file
。しかし、cprogfunc2()
にの値を設定した場合、abc.h
ファイルに反映されません。 proj1
の下には何も変更できないので、宣言の外側で静的変数を更新しています。ですから、ファイルから静的変数を更新するには、abc.h/Proj1
を変更せずにいくつかの方法を提案してください。それができない場合は、回避策を提案してください。ありがとう。すでに試した
ソリューション: - ことはできません私たちは、ポインタを使用してabc.h
ファイル
- を
stvar
非静的を作るには定義によって
、コードのフォーマットコードをarne'tもののために使用しないでくださいあなたの質問は非常に明確ではありません、どのファイルがどのファイルにどのようにコンパイルされているかを明示的に示します –
2つの異なる.exeプログラムが静的変数を共有できるかどうかを尋ねる場合は、そうではありません。 –