Stringification в C-препроцессоре — это процесс преобразования аргументов макроса в строковые константы. 2 Для этого используется оператор #. 2
Когда параметр макроса используется с ведущим #, препроцессор заменяет его литеральным текстом фактического аргумента, преобразованным в строковую константу. 2 В отличие от обычной замены параметров, аргумент не раскрывается первым. 2
При строификации препроцессор добавляет обратные слэши для экранирования кавычек, окружающих вложенные строковые литералы, и при необходимости удваивает обратные слэши внутри строки. 1 Весь ведущий и конечный белый пробел удаляется, а любая последовательность белого пробела в середине текста (но не внутри вложенных строковых литералов) сворачивается в один пробел. 1
Если результат строификации не является допустимым строковым литералом, поведение undefined. 1