私は2つのソースファイル(.c)file1.cとfile2.cの間に変数 を共有する必要があります。そのため、1つのソースファイル内に変数が更新されていれば、それにアクセスするときに他のソースファイルvariableに変更が表示されます。私は何をしたかどのように変数とC言語で多くのソースファイル間のその値を共有する?
は(もちろん、FILE1.Cのfile2.cおよびfile3.cの中に含まれている)と呼ばれるfile3.h file3.cのヘッダファイルと呼ばれる別のソースファイル
in file3.c:
int myvariable = 0;
void update(){//updating the variable
myvariable++;
}
int get(){//getting the variable
return myvariable;
}
in file3.h:
extern int myvariable;
void update(void);
int get(void);
in file1.c:
.
.
.
printf("myvariable = %d",get());//print 0
update();
printf("myvariable = %d",get());//print 1
.
.
.
in file2.c:
.
.
.
printf("myvariable = %d",get());//print 0 but should print 1
.
.
.
を作成しています
しかしfile1.c
更新で呼び出されると、GETが呼び出されたときにMYVARIABLEは、変更が原因file2.cにfile2.c
で見ることができない が更新され、 MYVARIABLEが、その後印刷されて0にのみfile2.cであれば、印刷されているときに問題があります更新が呼び出された後、変更が表示されます。 変数が共有されているように思えるが、各ソースファイルの変数を必要なときに他の人でexternがファイルとしてあなたは変数を宣言することができます別の変数値/この変数
実行ファイルを作成するためにこれらのファイルをどのようにコンパイルしていますか? file1.cとfile2.cの – dpp
も "int myvariable;"と宣言していますか?貴方はするべきではない。 –
私は誰かによって与えられたmakefileでそれらをコンパイルします。私は書いたように、file3.cとfile3.hだけで、それらを宣言しません。 –