у меня есть 2 исходных файла (.c )с именами file1.c и file2.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
вызывается обновление и обновляется моя переменная изменение не видно в file2.c
, потому что в file2.c при вызове get и myvariable печатается, затем печатается 0, только если в файле2.c вызывается обновление, тогда изменение видно. похоже, что переменная является общей, но для каждого исходного файла существует другое значение переменной/разная память для этой переменной