C/C++ Ключевое слово extern

C/C++ Ключевое слово extern

Ключевое слово extern применяют для того, чтобы совместно использовать одну и ту же переменную в разных модулях кода на языке C/C++. С помощью extern переменные становятся глобальными.

Использование extern уместно только в тех случаях, когда построенная Вами программа состоит из нескольких исходных файлов, соединяемых вместе на этапе линковки, где некоторые переменные определены, например, в исходном файле file1.c, и к ним нужно обращаться в других исходных файлах, таких как file2.c.

Важно понимать разницу между терминами “определение переменной” (defining a variable) и “декларирование переменной” (иногда говорят “объявление переменной”, declaring a variable). Причем можно определять и декларировать не только переменные, но и константы. Вот смысл этих понятий:

Переменная (или константа) определена в том месте программы, где компилятор выделяет под неё память. Переменная (или константа) декларируется, когда компилятор информируется о том, что эта переменная где-то уже определена.

В декларации обязательно указывается тип переменной, чтобы компилятор знал, какой код нужно генерировать при обращении к переменной. В месте декларации не выделяется место в памяти для размещения переменной. Вы можете декларировать переменную в модуле кода несколько раз (хотя достаточно только одной декларации); но определить переменную в области её видимости можно только один раз.

Как лучше всего декларировать и определять переменные

Часто бывает удобно создать 2 отдельных файла с расширениями .c/.cpp и .h и в них определять глобальные переменные и их использование
Например:
В file.c/.cpp определить int Value=0;
в file.h декларировать extern int Value;

В результате при подключении file.h переменная Value будет видна.
Подобный метод удобен при работе с парсерами, когда некоторые данные должны передаваться из одного интерфейса на обработку и потом куда-то еще.

Leave a Reply

Your email address will not be published. Required fields are marked *