gpt4 book ai didi

c - 尝试使用#define 将字符串数组分配给变量时出错(无效的初始值设定项错误)

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:19 24 4
gpt4 key购买 nike

我正在尝试编译包含以下行的 C 代码:

//...
#ifdef CPU_GPREG_NAMES
static const char *reg_names[] = CPU_GPREG_NAMES;
#endif
//...

CPU_GPREG_NAMES 定义为:

#define CPU_GPREG_NAMES                                            \
"zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", \
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \
"t8", "t9", "k0", "k1", "gp", "sp", "fp", "ra" \

但是上面第一个代码片段中的分配似乎有问题,因为我在该特定行上收到以下错误:

error: invalid initializer
error: expected identifier or '(' before string constant

这个错误的原因是什么?

最佳答案

您需要花括号来为初始化程序定义数组。您可以:

#define CPU_GPREG_NAMES { \
"zero", ... \
... \
}

static const char *reg_names[] = {CPU_GPREG_NAMES};     

关于c - 尝试使用#define 将字符串数组分配给变量时出错(无效的初始值设定项错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37309828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com