Имена предопределенных макрокоманд

Содержание

В языке С определены пять встроенных, предопределенных имен макрокоманд. Вот они:

__LINE__
__FILE__
__DATE__
__TIME__
__STDC__

В такой же последовательности о них здесь и пойдет речь.

Об именах макросов __LINE__ и __FILE__ рассказывалось, когда говорилось о директиве #line. Говоря кратко, они содержат соответственно номер строки и имя файла компилируемой программы.

В имени макроса __DATE__ содержится строка в виде месяц/день/год, то есть дата перевода исходного кода в объектный.

В имени макроса __TIME__ содержится время компиляции программы. Это время представлено строкой, имеющей вид час:минута:cекунда.

Если __STDC__ определено как 1, то тогда компилятор выполняет компиляцию в соответствии со стандартом С. А что касается С99, то в этом стандарт определены еще два имени макросов:

__STDC_HOSTED__
__STDC_VERSION__

__STDC_HOSTED__ равняется 1 для тех сред, в которых выполнение происходит под управлением операционной системы, и 0 — в противном случае. __STDC_VERSION__ будет равно как минимум 199901 и будет увеличиваться с каждой новой версией языка С. (В С99 могут быть определены и другие имена макросов, о них рассказывается в части II.)