Заголовочные файлы (.bi)
 
Предоставляет интерфейс для модуля.

Заголовочный файл — это особый вид исходного файла, содержащий, как правило, только директивы препроцессора, макросы, декларации, прототипы, константы, перечисления, или аналогичные виды заявлений. Однако, заголовочный файл может содержать любой допустимый исходный код, если это необходимо. Что отличает его от исходного файла модуля (.bas),  так это невозможность компилирования его непосредственно. Заголовочные файлы включают в другие исходные файлы (модули или заголовки) с помощью директивы препроцессора #include. Все скомпилированные библиотеки, как правило, имеют один или несколько файлов заголовков, которые могут быть включены в любом исходном файле библиотеки, таким образом предоставляя компилятору все объявления имен процедур, используемых в определенной библиотеке.

FreeBASIC заголовочные файлы

Некоторые ключевые слова, константы, и процедуры, описанные в данном руководстве не доступны как правило при компиляции исходного кода. Все потому что их описания находятся в отдельных заголовочных файлах. И чтобы использовать, нужно подключить нужный заголовок.
  • datetime.bi
  • dir.bi
  • fbgfx.bi
  • file.bi
  • string.bi
  • vbcompat.bi

Чувствительность к регистру

Хотя сам язык FreeBASIC не чувствителен к регистру, это не относится к файловой системе, на которой он выполняется. Если файл заголовка не может быть найден, проверьте правильно ли вы указали FreeBASIC(у) имя каталога и имя файла самого заголовка, который вы передаете с помощью директивы #include.

Разделители пути

FreeBASIC автоматически переключит символы обратного слеша (\) и прямого слеша (/)  по мере необходимости для данной платформы. Это позволяет исходному коду быть совместимым.

Включение заголовка только один раз

Известно , что заголовочные файлы нуждаются в директиве #include в других заголовочных файлах, чтобы собрать правильно. FreeBASIC предлагает три метода для того чтобы не было проблем при компиляции, когда включение может дублироваться.
  • #ifndef охранники в файле заголовка
  • #include once где файл включен
  • #pragma once в самом файле заголовка

#ifndef охранники в заголовочном файле

Использование #ifndef и #define является обычной практикой в ​​почти любом языке, поддерживающем предварительную обработку. Первый раз, когда файл включается, уникальный символ определяется. В следующий раз , идет проверка на предмет включен ли файл. И если это так, то содержимое файла заголовка пропускается.
'' header.bi
#ifndef __HEADER_BI__
#define __HEADER_BI__

#print These statements will only be included once,
#print even though header.bi might be included more 
#print than once in the same source file.

#endif


#include once

В точке в исходном коде, где включен заголовочный файл необязательный спецификатор «once» директивы #include может сказать компилятору на необходимость включать исходный файл только один раз.
'' header.bi
#include once "fbgfx.bi"

'' module.bas
#include once "fbgfx.bi"
#include once "header.bi"


#pragma once

#pragma once может быть использован в заголовочном файле, чтобы указать, что файл заголовка должен быть включен только один раз.
'' header.bi
#pragma once
#print This header will only ever be included once per module


См. также