file1.c と file2.c という名前の 2 つのソース ファイル (.c) があり、それらの間で変数を共有する必要があります。そのため、一方のソース ファイルで変数が更新された場合、もう一方のソース ファイルでこの変数にアクセスすると、その変更が変更されます。見られます。
私がしたことは、file3.c と呼ばれる別のソース ファイルと file3.h と呼ばれるヘッダー ファイルを作成することです (もちろん、これは file1.c file2.c と 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
.
.
.
しかし、問題は in file1.c
update が呼び出され、myvariable が更新されたときに変更が表示されないことです。file2.c
これは、file2.c で get が呼び出されて myvariable が出力されたときに 0 が出力され、file2.c で update が呼び出されて変更が呼び出された場合にのみ、変更が表示されるためです。見られました。変数は共有されているようですが、ソースファイルごとに、この変数には異なる変数値/異なるメモリがあります