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__ |
Данная макрокоманда дает время начала обработки препроцессором текущего исходного файла (в виде строкового литерала). |