Всем привет! Сегодня у нас небольшая тема про препроцессорные директивы #define и #undef.
#define — переводится как определять и позволяет заменить выражения, ключевые слова идентификаторами. Для примера возьмем программу из третьего урока:
#include
#define far (a-32)*5/9
int main()
{
float a;
a=79; /*Температура в Фаренгейтх*/
printf("Температура в Цельсиях:%.2f\n", far); /*Выводим на экран содержимое переменной b*/
return 0;
}
Рассмотрим программу начиная с первой строки:
1. Подключаем библиотеку stdio.h. Переход к следующей строке.
2. Присваиваем идентификатору far уравнение
3. В восьмой строке мы просто указали идентификатор far.
Результат:
Температура в Цельсиях:26.11
То есть при компиляции, где мы вставили far, идентификатор будет заменен на формулу. И так мы можем использовать его много раз, то есть до отмены. #define удобен в тех случаях, когда одну и ту же информацию нужно вводить по нескольку раз.
#undef — освобождает препроцессорный идентификатор #define.
Пример:
#include
#define far (a-32)*5/9
int main()
{
float a;
a=79; /*Температура в Фаренгейтх*/
printf("Температура в Цельсиях:%.2f\n", far); /*Выводим на экран содержимое переменной b*/
#undef far /*Освобождаем идентификатор*/
int far=5;
printf ("%d\n", far);
return 0;
}
Программа аналогична первой за исключением 9-11 строк.
Результат выполнения:
Температура в Цельсиях:26.11 5
В девятой строке мы освободили идентификатор far. А в десятой присвоили ему значение 5.