Вопросы по теме 'stringification'

Как именно работает трюк с двойной строкой?
По крайней мере, некоторые препроцессоры C позволяют вам преобразовать значение макроса в строку, а не его имя, передав его через один функционально-подобный макрос другому, который преобразовывает его в строку: #define STR1(x) #x #define...
18931 просмотров
schedule 22.02.2022

В отличие от строкового преобразования препроцессора C
При использовании препроцессора C можно преобразовать аргумент макроса в строку следующим образом: #define TO_STRING(x) "a string with " #x и поэтому при использовании результат будет следующим: TO_STRING(test) расширится до: "a string...
9277 просмотров
schedule 23.05.2022

Строковые аргументы макроса в вызове многоуровневого макроса
У меня есть такой макрос: #define SHOW_EXPR(x) printf ("%s=%d\n", #x, (x)) Оно работает: #define FOO 123 int BAR = 456; SHOW_EXPR(FOO+BAR); Это печатает FOO+BAR=579 , как и ожидалось. Теперь я пытаюсь определить макрос, который...
677 просмотров

Что видит компилятор с этим макросом?
Учти это: #define STRINGIFY(A) #A Если я потом напишу: STRINGIFY(hello) Действительно ли компилятор видит это: #hello Я думаю, что меня смущает эта дополнительная решетка перед #A .
2535 просмотров
schedule 24.11.2023

Оператор обратного препроцессора строкового преобразования
В одном включаемом файле в одном SDK определено множество широкострочных числовых констант, которые я не могу модифицировать, но которые часто обновляются и изменяются. Поэтому я не могу объявить числовое определение с помощью чисел, потому что оно...
1783 просмотров
schedule 22.12.2022

Макрос Stringification всегда добавляет один пробел
Учитывая следующий код, который печатает строку, которая представляет собой преобразование двух слов: #define PORT_INFO_MAC_2(portNum) port: portNum #define PORT_INFO_MAC(portNum) PORT_INFO_MAC_2(portNum) /* Stringify macro expansion...
93 просмотров
schedule 24.03.2024