Область действия директив препроцессора

Условные конструкции #if, #ifdef и #ifndef должны целиком находиться в одном файле.

Область действия директивы #define ограничена заголовочным файлом, в котором эта директива находится, плюс всеми файлами, подключающими этот файл директивами (#) include, #includeb или (#)includepp.

Директива #define, помещённая в файл исходного кода, видна только в этом файле.

Область действия директив #define в файлах исходного кода и заголовочных файлах

Как и определения или объявления переменных, идентификаторы препроцессора, созданные директивой #define, видны начиная со строки, где они определены.

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

Локальных областей и вложенных областей для определений препроцессора не существует. Пример кода:

sub on_sys_init
   dim f as byte
   for f=0 to 10
      dim s as string      'this variable's scope is limited to the for-next loop it resides in
      #define NUM_ITEMS 10 'this macro is visible from here to the end of the file
   next f
end sub

Область действия идентификаторов препроцессора, определённых в диалоге Customize Project

Глобальные идентификаторы препроцессора (из диалога Customize Project) видны везде в проекте.

Исходный материал Tibbo обновлён 12 июля 2022Оригинал на docs.tibbo.com · Сообщить об ошибке