#define宏定义的疑惑
#define Hang_00_L GPIO_WriteLow(Hang_00_PORT,Hang_00_PIN)#define LED1_L GPIO_WriteLow(LED1_PORT,LED1_PIN);
书本上描述#define宏定义不能以分号结束,但第二行#define 确实以分号结束也是正确,请大神指点迷津,谢谢!
可以分号结束的。宏定义很强大的。
不能的应该是程序里面用到宏定义的地方不能有分号。
例如:if(宏定义表达式){} //此时括号内宏定义不能有分号
#define,按正常套路,的确是不能以分号结束的。
万一以分号结束,语法检查有时也不为错,但使用时需要注意。
#define 在编译的时候做了宏替换,见到LED1_L的内容,直接替换为“GPIO_WriteLow(LED1_PORT,LED1_PIN);”,具体是否有影响,你把后面的内容,手动替换到程序中出现过LED1_L的内容,就可以看出来。
谁说的不可以用分号结束,书上说的未必是对的,多看看C语言标准 toofree 发表于 2019-12-25 11:51
#define,按正常套路,的确是不能以分号结束的。
万一以分号结束,语法检查有时也不为错,但使用时需要注意 ...
谢谢! 流水源 发表于 2019-12-25 11:49
可以分号结束的。宏定义很强大的。
不能的应该是程序里面用到宏定义的地方不能有分号。
谢谢!
页:
[1]