На этом шаге мы перечислим встроенные макроимена.
Существуют встроенные (заранее определенные) макроимена, доступные препроцессору во время обработки. Они позволяют получить следующую информацию (таблица 1):
Десятичная константа - номер текущей обрабатываемой строки файла с программой C++. Принято, что номер первой строки исходного файла равен 1. | |
Строка символов - имя компилируемого файла. Имя изменяется всякий раз, когда препроцессор встречает директиву #include с указанием имени файла. После окончания включения файла по команде #include восстанавливается предыдущее значение макроимени __FILE__. | |
Строка символов в формате: "месяц число год", определяющая дату начала обработки исходного файла. | |
Строка символов вида "часы:минуты:секунды", определяющая время начала обработки препроцессором текущего исходного файла. | |
Константа, равная 1, если компилятор работает в соответствии с ANSI-стандартом. В противном случае значение макроимени не определено. Проект стандарта C++ предполагает, что наличие имени __STDC__ определяется реализацией. | |
Имя, определенное равным 1 при компиляции программы на языке C++. В остальных случаях этот макрос не определен. |
В конкретных реализациях набор предопределенных имен шире. Например, в препроцессор BC++ дополнительно включены (таблица 2):
Имя, определенное равным 1, если в компиляторе имеется оптимизатор. | |
Числовое значение соответствует версии компилятора. | |
Идентифицирует порядок передачи параметров функциям, значение 1 соответствует порядку, принятому в языках C и C++ (в отличие от языка Pascal). | |
Определено для 32-разрядного компилятора и установлено в 1 для программ консольного приложения. | |
Соответствует работе в режиме Windows DLL. | |
Равно 1 для 16-разрядных компиляторов BC++, устанавливается в 0 для 32-разрядного компилятора. | |
Доступен только для 32-разрядного компилятора. | |
Равно 1 в оверлейном режиме. | |
Противоположен __CDECL__. | |
Установлен в 1, если компилятор удовлетворяет стандарту ANSI. | |
Числовое значение соответствует версии компилятора. | |
Означает, что ВС++ поддерживает шаблоны. | |
Определен как истинный для 32-разрядного компилятора. | |
Числовое значение, равное 0х0400 для компилятора ВС++4.0. | |
Означает генерацию кода для Windows. | |
Определен для 32-разрядного компилятора и установлен в 1 для консольных приложений и GUI. |
На следующем шаге мы начнем знакомиться со структурами.