黑马程序员技术交流社区

标题: 宏定义问题 [打印本页]

作者: ★Joean_Zhou    时间: 2014-5-26 20:14
标题: 宏定义问题
宏定义能不能把宏名定义为数组 比如#define COUNT[ ]  {1,2,3,}
作者: 永远不会贬值    时间: 2014-5-26 21:59
这样是不可以的。
作者: liulinjie    时间: 2014-5-26 22:23
刚刚试了一下, 不用中括号是可以的, 比如
#define COUNT {1,2,3,}
int main() {
        int num[3] = COUNT;         // 数组num就是{1, 2, 3}
        printf("{%d, %d, %d}\n", num[0], num[1], num[2]);    // 输出{1, 2, 3}
        return 0;
}
使用中括号编译不通过, 把[ ]中间的空格删掉也不行. 看起来似乎它不会把COUNT[]当做一个整体来编译, 而是把[]当做运算符.

作者: yangying514    时间: 2014-5-26 23:06
不可以吧,{}好像不符合命名规范
作者: 化学反应    时间: 2014-5-28 20:14
宏定义就是用一个指定的标识符来代表一个字符串,也即:
#define 标识符 字符串
而C语言规定标识符只能由字母,数字和下划线3种字符组成,且第一个字符必须为字母或下划线。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2