我有两个名为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更新并更新myvariable时
在file2.c中无法看到更改,因为在调用get时,在file2.c中
打印myvariable然后打印0,只有在调用file2.c更新时才会看到更改.
似乎变量是共享的,但对于每个源文件,此变量都有不同的变量值/不同的内存