Реферат: Препроцессор языка C.
символа '#'.
Вот пример макроопределения с использованием стрингификации:
#define WARN_IF(EXP) \
do { if (EXP) \
fprintf (stderr, "Warning: " #EXP "\n"); } \
while (0)
Здесь аргумент 'EXP' заменяется один раз обычным образом (в конструкции
'if'), а другой - с использованием стрингификации (аргумет функции
'fprintf'). Конструкция 'do' и 'while (0)' является реализацией макроса
'WARN_IF (ARG);'.
Возможности срингификации ограничены до преобразования одного макро
аргумента в одну строковую константу: не существует методов комбинирования
аргумента с другим текстом и посследующей стрингификации полученных данных.
Хотя рассмотренный выше пример показыв