#define def_1(var) { \
int s[var]; \
}
int main(){
def_1(2);
s[0]=1; s[1]=3;
printf("s[0]=%d\t s[1]=%d\n", s[0], s[1]);
return;
}
上面的代码有编译错误,表明s未定义。
答案 0 :(得分:0)
编译错误是因为你在s的定义周围有大括号。从宏中删除花括号,它应该编译。
即。改变:
#define def_1(var) { \
int s[var]; \
}
到
#define def_1(var) int s[var];
答案 1 :(得分:0)
是的,你可以,是的。您的#define
将您的变量添加到一行块,我想您想要更改此
#define def_1(var) { \ int s[var]; \ }
这样的事情
#define def_1(var) int s[var];