Когда разрабатывают программы на C++, возникает необходимость в организации кода без повторения одинаковых фрагментов. Для этого используют внешние файлы с функциями и переменными, которые могут быть доступны из разных частей программы. При этом, без заголовочного файла, описывающего эти функции и переменные, компилятор не сможет найти их объявлений.
Просто поместить переменную или функцию во внешний файл не достаточно. Если не предоставить компилятору заголовка с объявлением, то он не сможет совместить использование этих элементов в других частях программы с их определениями во внешнем файле. Заголовочный файл с объявлениями становится таким же важным компонентом, как и сам внешний файл с определениями функций и переменных.
Использование ключевого слова extern с переменной или функцией внутри программы сообщает компилятору о том, что эти элементы определены внешне, то есть не в текущем файле, а в другом. Это позволяет компилятору завершить сборку программы, даже если определения переменных или функций находятся в другом файле, который будет подключен позже.
Заголовочный файл без внешнего
Представьте себе ситуацию, когда вы пишете программу на языке программирования, и вам нужно использовать переменные и функции из других файлов. Обычно вы подключаете заголовочные файлы с помощью директивы #include, чтобы компилятор знал о существовании этих переменных и функций. Но что, если вам нужно использовать только объявления без полного определения этих сущностей? В таких случаях вы можете столкнуться с необходимостью создания заголовочного файла без внешнего.
Когда это может быть полезно?
Это может быть полезно, когда вы хотите использовать только объявления переменных и функций без полного определения в вашем заголовочном файле. Например, если вы создаете библиотеку и хотите предоставить только интерфейс, не раскрывая детали реализации, заголовочный файл без внешнего будет идеальным выбором.
Вместо того чтобы предоставлять complete файлы, которые могут содержать код, который вы не хотите раскрывать, вы можете создать заголовочный файл, который просто объявляет функции и переменные, не предоставляя их определений.
extern без файла заголовка
Когда вы начинаете работу над программой на языке программирования, вам приходится столкнуться с вопросом организации файлов. Обычно, чтобы использовать переменные или функции из одного файла в другом, требуется использование заголовочных файлов. Однако, можно ли обойтись без этого дополнительного файла и все же использовать ключевое слово «extern»? Давайте разберемся.
Простое объявление переменной
В некоторых случаях, особенно когда ваш проект маленький или вы работаете над небольшим модулем, использование файла заголовка может показаться излишним. Представьте, что вы хотите использовать переменную из одного файла в другом. Объявление этой переменной с ключевым словом «extern» в файле, где вы хотите ее использовать, может оказаться простым и чистым способом достижения вашей цели.
Ключевое слово «extern» просто указывает на то, что переменная или функция уже объявлена в другом файле, и компилятор должен обратиться к этому внешнему объявлению, когда он сталкивается с ней в текущем файле. Это делает возможным использование переменной без необходимости повторного объявления ее типа и имени.