мета-данные страницы
Это старая версия документа!
классы хранения
В Си существует четыре основных класса хранения: auto, extern, static, register.
extern
extern
допустим, у нас есть несколько файлов, которые будут скомпилированны в одну программу. В таком случаи, что бы пользоваться переменной, объявленной в первом файле из второго файла, нужно объявить ее внешней, тоесть как бы заставить искать ее в других файлах.
// main.c #include <stdio.h> char message[] = "Hello"; void print() { printf("Hello from extern function\n"); } int sum(int x, int y) { return x + y; }
//app.c #include <stdio.h> extern char message[]; // переменная message из файла main.c void print(void); // функция print из main.c int sum(int, int); // функция sum из main.c int main(void){ // выводим на консоль внешнюю переменную message printf("%s \n", message); // вызываем внешнюю функцию print print(); // вызываем другую внешнюю функцию - sum printf("4 + 5 = %d \n", sum(5, 4)); return 0; }