Языки программирования для численных методов. Глушакова Т.Н - 77 стр.

UptoLike

77
#define SQ(x) ((x)*(x))
Запись этого макроопределения , например, в виде
#define SQ(x) x * х
может привести к неверному результату. Пусть мы хотим использовать SQ
следующим образом:
s = SQ(a+b);
После выполнения макроподстановки получим
s = a+b*a+b;
и результат будет неверным. Скобки гарантируют сохранение приоритета
выполнения операций .
7.4. Директива #undef
Директива #undef ограничивает область действия директивы -
#define. Директива имеет следующий вид :
#undef идентификатор
где идентификатор идентификатор, ранее определенный в
директиве #define.
Директива #undef используется:
1) для изменения условия в директиве #ifdef;
2) для исключения дублирования макроимен.
Последний случай может иметь место при включении файлов с
помощью директивы #include. Включаемый файл может содержать
макроопределения . При такой ситуации возможно дублирование имен.
Препроцессор будет руководствоваться первым встретившимся
макроопределением .
7.5. Условная компиляция
Условная компиляция это выборочная компиляция только тех
частей программы, которые удовлетворяют некоторым условиям.
Например, могут быть компилированы только те части программы,
которые относятся к определенному окружению или к реализации
системно- зависимых функций в каждой операционной системе при
написании переносимых программ.
Условная компиляция имеет следующие преимущества:
                                    77
     #define SQ(x) ((x)*(x))
     Запись этого макроопределения, например, в виде
     #define SQ(x) x * х
может привести к неверному результату. Пусть мы хотим использовать SQ
следующим образом:
     s = SQ(a+b);
      После выполнения макроподстановки получим
      s = a+b*a+b;
и результат будет неверным. Скобки гарантируют сохранение приоритета
выполнения операций.

7.4. Директива #undef
      Директива #undef ограничивает область действия директивы -
#define. Директива имеет следующий вид:
      #undef идентификатор
      где идентификатор — идентификатор, ранее определенный в
директиве #define.
      Директива #undef используется:
      1) для изменения условия в директиве #ifdef;
      2) для исключения дублирования макроимен.
      Последний случай может иметь место при включении файлов с
помощью директивы #include. Включаемый файл может содержать
макроопределения. При такой ситуации возможно дублирование имен.
Препроцессор     будет руководствоваться       первым встретившимся
макроопределением.

7.5. Условная компиляция
      Условная компиляция — это выборочная компиляция только тех
частей программы, которые удовлетворяют некоторым условиям.
Например, могут быть компилированы только те части программы,
которые относятся к определенному окружению или к реализации
системно-зависимых функций в каждой операционной системе при
написании переносимых программ.
      Условная компиляция имеет следующие преимущества: