Поскольку С позволяет выполнять раздельную компиляцию модулей для большой программы, в целях ускорения компиляции и помощи управлению большими проектами, должны быть способы передачи информации о глобальных переменных файлам программы. Решение заключается в объявлении всех глобальных переменных в одном файле и использовании при объявлении в других файлах слова extern.
Файл 1
| Файл 2
|
int x, y;
char ch;
int main(void)
{
…
}
void func1(void)
{
x = 23;
}
| extern int x, y;
extern char ch;
void func22(void)
{
x = y/10;
}
void func23(void)
{
y = 10;
}
|
Имеется другой вариант использования extern. Когда используется глобальная переменная внутри функции, находящейся в том же файле, где происходит объявление глобальной переменной, то можно объявлять её как extern.