我们可以使用C宏函数来定义变量;

时间:2014-09-08 17:09:09

标签: macros

#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未定义。

2 个答案:

答案 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];