Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tekhnologia_programmirovania.pdf
Скачиваний:
182
Добавлен:
08.04.2015
Размер:
1.76 Mб
Скачать

116

9

 

cout << "\nИмя текущего файла " << _ _ FILE_ _ ;

 

cout << "\nДата " << _ _ DATE_ _ ;

// Использование

cout << "\nНомеp текущей строки "<<_ _ LINE_ _ ;// встроенных

cout << "\nВремя " << _ _ TIME_ _ ;

// макросов

#define PROBLEM 0

// Определение макроса PROBLEM

#if PROBLEM

// Проверка значения макроса PROBLEM

#error We have a problem

// Сюда не попадаем, если PROBLEM равно 0

#endif

 

 

getch();

 

 

}

 

 

В результате работы данной программы на экране появилось следующее:

c меньше d

Макрос SMALL определен Макрос SMALL не определен

Имя текущего файла PREPROC.CPP Дата Jul 01 2004

Номер текущей строки 36 Время 14:59:12

Если дать макросу PROBLEM значение, отличное от 0, например:

#define PROBLEM 1

то компиляция прервется на строке:

#error We have a problem

с выдачей сообщения: We have a problem.

Так как препроцессор изменяет текст исходной программы, причем измененный текст, как правило, недоступен, ошибки, связанные с макросами, бывает трудно найти, поэтому, по возможности следует избегать чрезмерного использования макросов, особенно макросов с параметрами. Вместо макросов с параметрами следует использовать функции.

Задачи -. Макросы

Макрос – это имя, которому директива препроцессора #define задает некоторое значение. В тексте программы каждое вхождение имени заменяется заданным значением.

122.Напишите макрос, вычисляющий максимальное значение двух величин и программу с его использованием.

123.Напишите макрос, вычисляющий минимальное значение двух величин и программу с его использованием.

Препроцессор 117

124. Напишите макрос для округления числа с плавающей точкой до ближайшего целого. Результат округления должен иметь целый тип. Напишите программу, использующую этот макрос.