A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ★Joean_Zhou 中级黑马   /  2014-5-26 20:14  /  1408 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

宏定义能不能把宏名定义为数组 比如#define COUNT[ ]  {1,2,3,}

4 个回复

倒序浏览
这样是不可以的。
回复 使用道具 举报
刚刚试了一下, 不用中括号是可以的, 比如
#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[]当做一个整体来编译, 而是把[]当做运算符.
回复 使用道具 举报
不可以吧,{}好像不符合命名规范
回复 使用道具 举报
宏定义就是用一个指定的标识符来代表一个字符串,也即:
#define 标识符 字符串
而C语言规定标识符只能由字母,数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马