小编sle*_*rod的帖子

C - 如何在宏中分配值?

我试图在我的x-macro中分配一个值,但我真的不明白为什么它不起作用:

#include <stdio.h>

typedef struct
{
    int a;
    int b;
} struct_t;

#define MY_LIST \
    MY_ELEMENT(a) \
    MY_ELEMENT(b)

#define MY_ELEMENT(x) struct_t x; \ 
x.a=33;
MY_LIST 
#undef MY_ELEMENT

int main(void)
{
    fprintf(stdout, "a: %d\n", a.a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译时我收到以下错误:

test.c:14:2: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or   ‘__attribute__’ before ‘.’ token
 x.a=33;
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我得到这个错误以及如何解决这个问题?

c x-macros

2
推荐指数
1
解决办法
632
查看次数

标签 统计

c ×1

x-macros ×1