Вопросы по теме '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 просмотров
schedule
03.05.2024
Что видит компилятор с этим макросом?
Учти это:
#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