UNUSED( )用法
/*
Avoid "unused parameter" warnings
*/
#define UNUSED(x) (void)x;
(void)x 强制类型转换,把x转换成空类型。就如(float)x一样,把数x强制转换成float类型。
任何类型可以转换为void类型,来显示的表明对该值的丢弃,避免未使用时的报错。宏是没有作用域概念的,永远是全局生效。所以,对于一些用来简化代码、起临时作用的宏,最好是用完后尽快用“#undef”取消定义,避免冲突的风险。像下面这样:
另一种做法是宏定义前先检查,如果之前有定义就先 undef,然后再重新定义:
#define CUBE(a) (a) * (a) * (a) // 定义一个简单的求立方的宏
cout << CUBE(10) << endl; // 使用宏简化代码
cout << CUBE(15) << endl; // 使用宏简化代码
#undef CUBE // 使用完毕后立即取消定义
#ifdef AUTH_PWD // 检查是否已经有宏定义
# undef AUTH_PWD // 取消宏定义
#endif // 宏定义检查结束
#define AUTH_PWD "xxx" // 重新宏定义