c语言宏函数分号 c语言 宏 函数

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

宏定义的名称,是C语言标识符的一种,和函数名,变量名的命名规则是一样的,只允许使用数字,字母,下划线,且不能以数字开头。

我们提供的服务有:成都网站制作、成都做网站、外贸营销网站建设、微信公众号开发、网站优化、网站认证、昭化ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的昭化网站制作公司

所以宏名是不可以有括号和分号的。

另外,在C语言编程中,一般约定宏名用大写字母加下划线组成,而避免使用小写字母。这一条并非是C语言规范强制要求,而是编程时的一种习惯。

也就是说,宏定义my_print是合法的,可以被C语言编译器接收,但一般书写习惯更倾向于写作MY_PRINT。

这样约定的好处是,当遇见全部为大写字母和下划线组成的标识符时,就可以认作是宏定义了。

C语言宏定义不是说没有分号的吗,这张图中标出的几个分号是什么意思啊,为什么第三个没分号,详细点谢谢

这个加分号是因为它是一个语句啊

即BLUE,RED是分别一个语句啊,当然要加分号,这不是#define后加分号

是宏定义展开后加分号

最后一个没加分号,是因为GREEN;后加了分号,所以没加

据我所知C语言中宏定义后面是不需要加分号的,可是下面这句是什么意思? #define SET_DATA io_LCD12864_RS

宏定义要看你怎么用了。

例如#define NEWLINE printf("\n")

你在用的时候就要把NEWLINE当作是一条语句或函数后面要加分号才可以。

若#define NEWLINE printf("\n");

那你在使用这个宏的时候只要写NEWLINE就可以了。

PS.如果你宏定义中有分号,使用的时候加不加分号都行,因为多的那个分号可以认为是空语句。但是宏定义没有加分号,使用宏的时候就要记着加分号。所以你测试时只把宏定义的分号去掉了,肯定会报某个语句之前parse错误

C语言宏定义为何不用分号结束?如果一行写不下怎么办?

分号是C语言一条语句结束的标识,宏定义可以是一条完整的语句,也可以是一条语句的一部分,还可以是多条语句组成。所以不一定要用分号结束,而是要根据实际情况具体判断是否要用分号。

在定义宏时,如果一行写入的数据太长,会影响阅读,这时可以在需要换行的地方加入反斜杠(\),然后在\后换行。

比如

#define

output(x)

printf("the

var's

\

value

is

%d",\

x)

和写作

#define

output(x)

printf("the

var's

value

is

%d",

x)

是没有区别的。


分享标题:c语言宏函数分号 c语言 宏 函数
网页网址:http://myzitong.com/article/dooighg.html