Ключевое слово extern в языке Си

1) Ключевое слово extern говорит что объявление переменной, следующей за ним, сделано в другом файле (например исходном файле \*.с) и нужно использовать ее.
extern int size; // Целочисленная переменная size объявлена в другом файле (месте) 2) Нельзя присваивать значение extern переменной при объявлении
extern int size = 10; // Ошибка! 3) Объявление переменной или функции с заданным именем в проекте может быть только одно (например int size;) или будет ошибка "multiple definition of size"
4) Объявленных переменных или функций как extern (extern int size) может быть много (хоть в каждом файле)
5) Похоже что линковщик сам разбирается где объявлена переменная и связи файлов между собой делать не обязательно(например через подключенные заголовочные файлы)
file1.c

int size = 34; // Объявление переменной
float get_PI(){ // Объявление функции
    return 3.14f;
}
main.c (файл может быть любой, просто функцию get_PI() можно вызывать только из другой функции а тут уже main() есть)

#include <stdio.h> // prinf()
int main(){
    extern int size; // Переменная size определена в другом файле
    extern float get_PI(); // // Функция get_PI() определена в другом файле
    printf("size = %d, pi = %f\n", size, get_PI()); // size = 34, pi = 3.140000 Использование extern переменной и функции
}
2023-03-08



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

Ключевое слово extern в языке Си
Инкапсуляция в языке Си
Макросы в языке Си
Достоинства и недостатки языка Си