我有 2 个名为 file1.c 和 file2.c 的源文件 (.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
.
.
.
但问题是当file1.c
调用 in update 并更新 myvariable 时,无法看到更改,file2.c
因为在 file2.c 中调用 get 并打印 myvariable 然后打印 0,只有在 file2.c 中调用 update 然后更改被看到了。似乎该变量是共享的,但是对于每个源文件,该变量都有不同的变量值/不同的内存