как разделить переменную и ее значение между несколькими исходными файлами на языке c?

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

6
задан 27 April 2012 в 19:21
поделиться