Предопределенные макрокоманды
Borland C++ имеет следующие предопределенные глобальные
идентификаторы. За исключением __cplusplus и _WINDOWS, каждый из
них и начинается, и заканчивается двумя символами подчеркивания
(__). Эти макрокоманды также называют именованными константами.
__BCOPT__ | Эта макрокоманда определена (как строка "1") в любом компиляторе, имеющем оптимизатор. | |
__BCPLUSPLUS__ | Эта макрокоманда специфична для семейства компиляторов
Borland Си и C++. Она определена только для компиляции с помощью C++. Если вы выбрали компиляцию С++, то данная макрокоманда определена как шестнадцатиричная константа 0x0320. Это численное значение в последующих версиях будет увеличено. | |
__BORLANDC__ | Эта макрокоманда специфична для семейства компиляторов
Borland Си и C++. Она определена как шестнадцатиричная константа 0x0400. Это численное значение в последующих версиях будет увеличено. | |
__CDECL__ | Данная макрокоманда специфична для компилятоpов Borland Си и
C++. Она сообщает о том, что флаг соглашения по вызову языка Паскаль не использовались. Она устанавливается равной целочисленной константе 1, если вызов не использовался; в противном случае она не определена. | |
Следующие символические имена определяются согласно выбранной во время компиляции модели памяти:
| Для конкретной компиляции определенным является только одна
из этих макрокоманд. Прочие по определению не определены. Например, если при компиляции выбрана малая модель памяти (small), то макрокоманда __SMALL__ определена, а остальные не определены, поэтому директива: #if defined(__SMALL__) даст значение True (истина), а: #if defined(__HUGE__) (либо любая другая из оставшихся) даст значение False (ложь). Фактическое значение любой из этих макрокоманд, когда она определена, равно 1. | |
__cplusplus | Данная макрокоманда в pежиме C++ имеет значение 1; в пpотивном случае, она не опpеделена. Она позволяет написать модуль, который в некоторых случаях будет компилироваться в Си, а в некоторых - в С++. Использование условных директив компиляции позволяет
управлять тем, какие части программы для Си и С++ будут включаться в компиляцию. | |
__DATE__ | Данная макрокоманда дает дату начала обработки препроцессором данного исходного файла (в виде строкового литерала). Каждое
включение __DATE__ в данный файл дает одно и то же значение, независимо от того, сколько времени продолжается обработка файла препроцессором. Дата имеет форму mmmddyyyy, где mmm это месяц (Jan, Feb и т.д.), dd равно числу месяца (от 1 до 31, причем если это число меньше 10, то первый символ d равен пробелу), а yyyy это год (1990, 1991 и т.д.) | |
__DLL__ | Эта макрокоманда специфична для семейства компиляторов
Borland Си и С++. Она определена как 1, если компилятоp командной стpоки выполняет компиляцию модуля с параметром -WD или в меню O|C|Entry/Exit Code выбиpается селективная кнопка Windows DDL All Functions Exportable для генерации кода библиотек DLL Windows. В противном случае макрокоманда не определена. | |
__FILE__ | Данная макрокоманда дает имя текущего обрабатываемого препроцессором исходного файла (в виде строкового литерала). Когда
препроцессор обрабатывает директиву #include или #line, либо при завершении обработки включаемого файла, данная макрокоманда соответствующим образом меняет свое значение. | |
__LINE__ | Данная макрокоманда дает количество обработанных препроцессором к данному моменту строк текущего исходного файла. Обычно
первая строка исходного файла определяется с номером 1, хотя на это может повлиять директива #line. Информацию о директиве #line см. выше. | |
__MSDOS__ | Данная макрокоманда специфична для Borland Си и C++. Он дает
целочисленную константу 1 для всех случаев компиляции. | |
__MT__ | Эта макрокоманда может использоваться только 32-разрядными
компиляторами. Если используется параметр -WM (он задает компоновку мультинитевой библиотеки), эта макрокоманда определена как 1. | |
__OVERLAY__ | Данная макрокоманда специфична для Borland Cи и С++. Она
предопределена как 1, если модуль компилируется с параметром -Y (включена поддержка оверлейных структур). Если оверлейные структуры не поддерживаются, то данная макрокоманда не определена. | |
__PASCAL__ | Данная макрокоманда специфична для Borland Cи и С++. Она
сообщает о том, что был использован флаг -p или из меню O|C|C|Exit/Entry была выбpана команда Pascal calling conventions. В этом случае макрокоманда установлена равной целочисленной константе 1; в противном случае она не определена. | |
__STDC__ | Данная макрокоманда определена равной константе 1, если компиляция выполняется при установленном флаге совместимости со
стандаpтом ANSI (-A) или выбpанной из меню Source Options селективной кнопке ANSI. В противном случае макрокоманда не определена. | |
__TCPLUSPLUS__ | Данная макрокоманда специфична для Borland Cи и С++. Она определена только для компиляции С++. Если вы выбрали компиляцию
С++, она определена как шестнадцатиричная константа 0x0320. | |
__TEMPLATES__ | Данная макрокоманда специфична для Borland Cи и С++. Она определена как 1 для файлов С++ (это означает, что C++ поддеpживает
шаблоны); в пpотивном случае, она не опpеделена. | |
__TIME__ | Данная макрокоманда дает время начала обработки препроцессором текущего исходного файла (в виде строкового литерала). |
Как и в случае макрокоманды __DATE__, каждое включение
__TIME__ будет содержать одно и то же значение, независимо от того, сколько времени продолжалась обработка файла. Он имеет формат
hh:vv:ss, где hh - это часы (от 00 до 23), mm - это минуты (от 00
до 59), а ss - это секунды (от 00 до 59).
__TLC__
Эта макрокоманда всегда имеет значение True при использовании 32-битового компилятора. См. описание ключевого слова __thread.
__TURBOC__
Данная макрокоманда специфична для Borland Cи и С++. Она
опpеделена как шестнадцатиричная константа 0x0410. Это числовое
значение в последующих версиях будет увеличено.
__WIN32__
Для 32-разрядного компилятора эта макрокоманда всегда определена. Она определена для консольных приложений и приложений
GUI.
_Windows
Указывает на то, что генеpиpуется код, специфичный для Windows. Данная макрокоманда определена, если вы компилируете модуль
с любым включенным параметром -W (генерация прикладной программы
для Windows). Если ни один из этих параметров не включен, то данная макрокоманда не определена.