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

UptoLike

76
размещается в директиве #define после второго пробела (первый
пробел указывается после директивы #define).
Если за последним непробельным символом в строке указывается \
(обратная наклонная черта), это означает, что строка имеет продолжение
на следующей линии, например:
#define STR ((a>b||c>b)&&\
((d%f)==0))
7.3.2 Макроподстановка с аргументами
Препроцессор позволяет использовать более сложную и полезную
форму директивы #define:
#define идентификатор (идентификатор,...,идентификатор) строка
где идентификатор - символический макроидентификатор;
(идентификатор,..., идентификатор) - список параметров; строка -
подставляемая строка (обычно она включает параметры ).
Не должно быть пробелов между макроидентификатором и
открывающей скобкой. В противном случае препроцессор будет
рассматривать директиву как простую подстановку, а список параметров
трактовать как подставляемую строку.
Макроподстановка с аргументами обычно используется аналогично
функции. Иногда макроподстановку с аргументами называют
псевдофункцией или макроопределением. Макроподстановки могут быть
вложенными.
Например, можно задать макроопределения UP и LOW для
преобразования латинских символов соответственно в символы верхнего и
нижнего регистров:
#define UP(c) ((c)-'a'+ 'A')
#define LOW(c) ((с) -'A'+ 'а')
Следует отметить , что каждое появление параметра в подставляемой
строке должно заключаться в скобки; вся подставляемая строка тоже
должна заключаться в скобки.
Например, макроопределение, вычисляющее квадрат некоторого
значения , можно записать так :
                                     76
размещается в директиве #define         после второго пробела (первый
пробел указывается после директивы #define).
      Если за последним непробельным символом в строке указывается \
(обратная наклонная черта), это означает, что строка имеет продолжение
на следующей линии, например:
      #define STR ((a>b||c>b)&&\
                ((d%f)==0))

     7.3.2 Макроподстановка с аргументами
     Препроцессор позволяет использовать более сложную и полезную
форму директивы #define:

  #define идентификатор (идентификатор,...,идентификатор) строка

где    идентификатор       -   символический     макроидентификатор;
(идентификатор,..., идентификатор) - список параметров; строка -
подставляемая строка (обычно она включает параметры).
      Не должно быть пробелов между макроидентификатором и
открывающей скобкой. В противном случае препроцессор будет
рассматривать директиву как простую подстановку, а список параметров
трактовать как подставляемую строку.
      Макроподстановка с аргументами обычно используется аналогично
функции. Иногда макроподстановку с аргументами называют
псевдофункцией или макроопределением. Макроподстановки могут быть
вложенными.
      Например, можно задать макроопределения UP и LOW для
преобразования латинских символов соответственно в символы верхнего и
нижнего регистров:
     #define UP(c) ((c)-'a'+ 'A')
     #define LOW(c) ((с) -'A'+ 'а')
     Следует отметить, что каждое появление параметра в подставляемой
строке должно заключаться в скобки; вся подставляемая строка тоже
должна заключаться в скобки.
     Например, макроопределение, вычисляющее квадрат некоторого
значения, можно записать так: