adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Директива pragma (ANSI Си 3.8.6)
-----------------------------------------------------------------
Турбо Си поддерживает директиву #pragma, которая (как и
error), неясно определяется в стандарте ANSI. Ее целью является
разрешить специализированные директивы по форме:
#pragma <имя директивы>
С помощью #pragma Турбо Си может определить любые директивы,
которые ему требуются, без вмешательства других компиляторов,
поддерживающих #pragma. Почему? Потому что, по определению, если
компилятор не опознал имя директивы, то он игнорирует директиву
#pragma.
#pragma inline
--------------
Турбо Си распознает три директивы #pragma. Первая:
#pragma inline
Эта директива эквивалентна опции компилятора -B. Она сообща-
ет компилятору о том, что в программе присутствуют ассемблеровс-
кие команды (см. главу 12). Наилучшее ее расположение - начало
файла, т.к. компилятор самоперезапускается с опцией -B сразу, как
только встретится #pragma inline. На самом деле, вы можете опус-
тить и опцию -B, и директиву #pragma inline, т.к. компилятор все
равно самоперезапускается, как только встретит asm операторы;
целью этой опции и директивы является экономия времени компиля-
ции.
#pragma warn
------------
Вторая #pragma директива - это
#pragma warn
Данная директива позволяет не принимать во внимание специ-
- 303,304 -
альную опцию командной строки -wxxx (или спецификацию Display
warnings...On ).
Например, если исходный текст программы содержит директивы:
#pragma warn +xxx
#pragma warn -yyy
#pragma warn .zzz
то xxx включит вывод пользователю предупреждений (если даже
в подменю O/C/Errors/ она была выключена); yyy выключит вывод
сообщений; а zzz восстановит первоначальное значение, которое
было в начале компиляции файла.
Полный список трехзначных аббревиатур и предупреждений, ко-
торые они включают и выключают, приведен в Приложении Справоч-
ного Руководства по Турбо Си.
#pragma-директива saveregs
Эта pragma-директива гарантирует что huge-функции не изменят
значения любых регистров введенных до этого. Эта директива иногда
нужна для организации интерфейса с языком ассемблера. Директива
может быть размещена непосредственно перед определяемой функцией.
Тогда она будет применена только к этой функции.
- 305,306 -
Директива null (ANSI Си 3.7)
----------------------------------------------------------------
Ради завершенности, ANSI-стандарт и Турбо Си опознают пустую
директиву, состоящую из строки со знаком #. Эта директива всегда
игнорируется.
Встроенные макроимена (ANSI Си 3.8.8)
----------------------------------------------------------------
ANSI стандарт требует чтобы в реализации было 5 встроенных
макросов. Турбо Си применяет все 5. Отметим, что каждый из них
начинается и оканчивается символами подчеркивания (__).
_LINE_ Номер обрабатываемой строки исходной программы - десятич-
ная константа. Первая строка исходного файла определена
как 1.
_FILE_ Имя обрабатываемого исходного файла - строка символов.
Данное макроопределение изменяется всякий раз, при обра-
ботке компилятором директивы #include или директивы #line,
или по окончании включаемого файла.
_DATE_ Дата начала обработки текущего исходного файла - строка
символов.
Каждое вхождение _DATE_ в заданном файле гарантирует одно
значение, независимо от продолжительности обработки. Дата
имеет формат mmm dd yyyy, где mmm - месяц (Jan, Feb и
т.д.), dd - число текущего месяца (1...31; в первой пози-
ции dd ставится пробел, если число меньше 10), yyyy - год
(1988, 1989 и т.д.).
_TIME_ Время начала обработки текущего исходного файла препроцес-
сором - строка символов.
Каждое вхождение _TIME_ в заданном файле гарантирует одно
значение, независимо от продолжительности обработки. Время
имеет формат hh:mm:ss, где hh - час (00...23), mm - минуты
(00...59), ss - секунды (00...59).
_STDC_ Константа, равная 1, если вы компилируете с (-A) флагом
- 307,308 -
(ANSI keywords only...ON), устанавливающим совместимость с
ANSI стандартом; иначе макроопределение не определено.
Встроенные макросы Турбо Си
-----------------------------------------------------------------
Для вашего использования препроцессор Турбо Си определяет
несколько дополнительных макросов. Также, как для макросов, пред-
писанных стандартом ANSI, каждый из них начинается и оканчивается
двумя символами подчеркивания.
_TURBOC_ Выдает номер текущей версии Турбо Си - шеснадцатиричная
константа. Версия 1.0 представляется как 0x0100; версия
1.2 - как 0x0102 и т.д.
_PASCAL_ Определяет наличие флага -p; устанавливается в целую
константу, равную 1, если используется флаг -p; иначе
не определяется.
_MSDOS_ Целая константа, равная 1, для всех компиляторов
_CDECL_ Сигнализирует о том, что флаг -p не использовался
(Calling convention...C); устанавливает целую констан-
ту, равную 1, если флаг -p не использовался; иначе не
определяется.
- 309,310 -
Следующие 6 макросов зависят от выбранной для компиляции мо-
дели памяти. Для заданной компиляции определяется только одна из
них; остальные (по-определению) не определяются. Например, если
вы компилируете с малой моделью, то определяется _SMALL_, а ос-
тальные - нет; поэтому директива #if defined(_SMALL_) будет иметь
значение true (истина), в то время как #if defined(_HUGE_) (или
любая другая) будет иметь значение false (ложь). Действительное
|
adfun.ru
|
|
|
|