c++ 宏编写技巧
Posted live4m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 宏编写技巧相关的知识,希望对你有一定的参考价值。
错误做法1:
#define F() a(); b()
if (xxx)
F();
else
c();
/* 预处理后 */
if (xxx)
a(); b(); /* 中间有分号,但是没用大括号包起来 */
else
c();
错误做法2,直接加大括号也是错误的:
#define F() a(); b();
/* 预处理后 */
if (xxx)
a(); b(); ; /* 末尾多了一个分号 */
else
c();
正确做法,do-while:
#define F() do a(); b(); while(0)
/* 预处理后 */
if (xxx)
do a(); b(); while(0); /* 分号正好在while(0)后面,很合理 */
else
c();
以上是关于c++ 宏编写技巧的主要内容,如果未能解决你的问题,请参考以下文章