Вы можете использовать extern
для доступа к переменным в разных файлах ...
например увидеть это:
file1.c
// Integer with external binding
int global1 = 10;
// REFERENCE to an external defined variable defined in file2.c
extern int global2;
// Integer with internal binding (not accessible with extern from other files)
static int internal1 = 20;
void print1() {
printf("%d, %d, %d", global1, global2, internal);
}
file2.c
// REFERENCE to an external defined variable defined in file1.c
extern int global1;
// Integer with external binding
int global2 = 20;
void print2() {
// you wont be able to reach internal1 here! Even with extern!
printf("%d, %d", global1, global2);
}
Вы видите, внешний ключевое слово указывает компилятору, что существует глобальная переменная, но в другом файле. Вы можете ссылаться на переменные, объявленные где-то в другом месте (например, во внешней библиотеке или другом объектном файле). Также он значительно повысит читаемость исходного кода и поможет избежать переменных с одним и тем же именем! Его хорошая практика для его использования ...
И btw: Глобальные переменные по умолчанию extern
. Добавление static
изменяет их на внутренние переменные!
Одна из причин того, что если вы используете какую-либо библиотеку, она дает вам больше возможностей для чтения. вы должны объявить 'extern int i; 'в вашей программе. Это дает понять, что вы используете переменную i, которая не объявлена здесь. – Adi
https://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keyword-in-c#comments-499330 –