C++define语句块问题
本文最后更新于:2021年4月7日 下午
C++define语句块问题
1. 错误使用方式:
1 |
|
why?
#define print(x, y) (std::cout << x + y << std::endl;)
这条宏定义其实就是一条语句,因为本身我们也都会习惯性的会去在语句末端加上;
,而此时在if语句中,我们认为只有一个语句,使用宏定义后,也会加上;
,这就导致在宏定义语句后面多了一条空语句,所以else没有匹配的if而出现报错。为此,我们会经常将上述宏定义语句较长的加上do{}while(0)来使其成为一条语句,从而更符合常规使用习惯!
2. 改正优化后的效果
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!