C语言宏定义名可以有括号和分号吗?

[复制链接]
查看11 | 回复4 | 2017-9-3 06:13:48 | 显示全部楼层 |阅读模式
宏定义的名称,是C语言标识符的一种,和函数名,变量名的命名规则是一样的,只允许使用数字,字母,下划线,且不能以数字开头。所以宏名是不可以有括号和分号的。另外,在C语言编程中,一般约定宏名用大写字母加下划线组成,而避免使用小写字母。这一条并非是C语言规范强制要求,而是编程时的一种习惯。也就是说,宏定义my_print是合法的,可以被C语言编译器接收,但一般书写习惯更倾向于写作MY_PRINT。这样约定的好处是,当遇见全部为大写字母和下划线组成的标识符时,就可以认作是宏定义了。...
回复

使用道具 举报

千问 | 2017-9-3 06:13:48 | 显示全部楼层
可以这么写,不会出错,不过一般标准写法是#define AAA()
printf("a");\
printf("b");\
printf("c")//这里不要分号...
回复

使用道具 举报

千问 | 2017-9-3 06:13:48 | 显示全部楼层
宏定义不需要分号的宏是被预编译器处理,到编译器的时候,宏已经不存在了。所以宏的定义格式和 源代码不同的。所有带 # 号的都是预编译命令...
回复

使用道具 举报

千问 | 2017-9-3 06:13:48 | 显示全部楼层
宏名称命名和变量名规则一样...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行