Я ищу способ сделать макрос, который расширяется к дополнительным аргументам:макро расширения для дополнительных аргументов макросов
int constant1=2, constant2=3;
#define add_three_arguments(x,y,z) x+y+z
#define extra_arguments ,constant1,constant2
#define make_value(A) add_three_arguments(A extra_arguments)
int r = make_value(5);
Зачем нужен макрос, хотя вы можете использовать функцию для этого? –
Непосредственно, бит __never__ определяет макросы типа '#define add_three_arguments (x, y, z) x + y + z', но всегда помещает выражение в'() 'следующим образом:' #define add_three_arguments (x, y, z) (x + y + z) '. В противном случае, если вы используете 'x = add_three_arguments (1,2,3) * 10', результат будет не таким, как вы ожидаете. –
Это действительно помогло бы, если бы вы сказали нам цель более высокого уровня, которую вы пытаетесь достичь здесь. –