Вопросы по теме 'stringification'
C Макросы для создания строк
Альтернативные заголовки (для облегчения поиска)
Преобразование токена препроцессора в строку
Как сделать строку char из значения макроса C ?
Оригинальный вопрос
Я хотел бы использовать C #define для построения литеральных строк...
22848 просмотров
schedule
22.03.2023
Как преобразовать конкатенированные строки в широкий символ с помощью препроцессора C?
Я работаю над проектом, в котором у меня есть много постоянных строк, образованных конкатенацией (числа и т. д.).
Например, у меня есть макрос LOCATION , который форматирует __FILE__ и __LINE__ в строку, которую я могу использовать, чтобы...
5843 просмотров
schedule
23.05.2023
Прагма в макросе определения
Есть ли способ встроить оператор прагмы в макрос с другими операторами?
Я пытаюсь добиться чего-то вроде:
#define DEFINE_DELETE_OBJECT(type) \
void delete_ ## type_(int handle); \
void delete_ ##...
44468 просмотров
schedule
09.12.2022
Доступ к значению определения макроса препроцессора
Если я добавлю макрос «FOO=bar» в GCC_PREPROCESSOR_DEFINITIONS (или макросы препроцессора, если вы используете XCode), каким будет лучший способ получить доступ к значению «FOO»?
В настоящее время я использую неуклюжий:
#define...
6223 просмотров
schedule
09.05.2022
Препроцессор C, преобразование результата макроса в строку
Я хочу упорядочить результат расширения макроса.
Я пробовал со следующим:
#define QUOTE(str) #str
#define TEST thisisatest
#define TESTE QUOTE(TEST)
И TESTE расширяется до: «TEST», в то время как я пытаюсь получить «thisisatest». Я знаю,...
25115 просмотров
schedule
07.12.2022
Макрос препроцессора GCC: вставка x и x не дает действительного токена предварительной обработки
#define PATH "yagh/headers/"
#define FILNAME "includefile"
#define CONCAT(a__, b__) CONCAT_DO(a__, b__)
#define CONCAT_DO(a__, b__) a__##b__
#define CONCATTHREE(a__, b__, c__) CONCAT(CONCAT(a__, b__), c__)
#define STRINGIFY(a__) #a__
#include...
9101 просмотров
schedule
14.12.2022
Почему моя программа на C выводит это?
Я пытаюсь решить два вопроса, связанных с препроцессором, но в обеих программах я получаю результаты, которые не могу понять, как это сделать. Ниже моя программа:
#include<stdio.h>
#define SQUARE(x) x*x
int main()
{
float s=10,u=30 ,t=2,a;...
1883 просмотров
schedule
04.08.2022
Что такое # для форматирования с использованием %s
Я наткнулся на этот пример утверждения и задался вопросом, для чего предназначен # :
#define ASSERT( x ) if ( !( x ) ) { \
int *p = NULL; \
DBGPRINTF("Assert failed: [%s]\r\n Halting.", #x); \
*p=1; \
}
282 просмотров
schedule
18.01.2023
Объединить int в строку с помощью препроцессора C
Я пытаюсь понять, как я могу объединить #define 'd int в #define 'd строку с помощью препроцессора C . Мой компилятор - GCC 4.1 для CentOS 5. Решение также должно работать для MinGW.
Я хотел бы добавить номер версии к строке, но единственный...
51082 просмотров
schedule
14.12.2022
Строковая перегрузка и флаг utf8
Я чего-то не понимаю в перегрузке строк и в том, как она взаимодействует с флагом utf8.
Например, печатается следующий код:
n is utf8 at ./test_stringify_utf8.pl line 46.
$t->{name} is utf8 at ./test_stringify_utf8.pl line 47.
t is not utf8...
125 просмотров
schedule
17.02.2023
Как преобразовать строку, содержащую запятую?
Я хочу передать строку версии в команду компиляции:
$ g++ -Wall -D VERSION="2013-12-03 02:15:21, commit cb060df" -o main main.cpp
Внутри моего кода у меня есть следующее:
#define TOSTR_(x) #x
#define STRINGIFY(x) TOSTR_(x)
#define...
2635 просмотров
schedule
17.05.2023
Звездочка в имени аргумента с препроцессором C
Я хочу реализовать кроссплатформенную сборку моей DLL с помощью mingw32/VC. На данный момент со стороной mingw все в порядке. Однако мне нужно обернуть несколько вещей в макрос для VC (он построен как /TC), например:
void...
703 просмотров
schedule
27.11.2022
Препроцессор, создающий строку оператора с префиксами строкового литерала
Итак, я хочу сделать традиционную вещь, связанную со строковым оператором в макросе:
#define FOO(x) foo(#x, (x))
Однако мне нужно использовать префикс строкового литерала: http://en.cppreference.com/w/cpp/language/string_literal Что...
1067 просмотров
schedule
05.10.2023
Как вставить целое число в строку макроса?
Я впервые вижу стрингификацию и вставку токенов. Я чувствую, что это может быть хорошим инструментом для этого макроса:
#define MY_NUMBER 3
#define MY_STRING "the number three: ##MY_NUMBER"
printf("%s\n", MY_STRING);
должен вывести:...
68 просмотров
schedule
18.05.2023
Как я могу добавить целое число, используя «##» в препроцессоре C?
#include<stdio.h>
#define DEF6 625
#define DEF6 625
#define DEF(n) DEF##n
void main(){
printf("%d\n", DEF(6));
}
Этот код работает. но
#include<stdio.h>
#define DEF6 625
#define DEF(n) DEF##n
void main(){
int a=6;...
86 просмотров
schedule
08.08.2022
Строка loopcounter для ссылки на члены структуры C
У меня есть две структуры, которые выглядят так:
typedef unsigned char byte;
struct my_struct_2 {
int type;
int length; //will be 2 in this case
byte value1; //MSB
byte value2; //LSB
}
struct my_struct_4 {
int type;
int length; //will be 4 in...
60 просмотров
schedule
01.04.2023
Странная строка токена в C с переменной linux-* или строкой
Это первый вопрос в stackoverflow. До сих пор я получил так много помощи отсюда. Спасибо!
У меня есть следующий упрощенный код:
#define str(s) str2(s)
#define str2(s) #s
#define T_A linux-x86_64
const char* target_arch = str(T_A);
#include...
86 просмотров
schedule
14.01.2023