#ifndef _TEST_H_
#define _TEST_H_
#define SUCCESS 1
/**
* do Something
*/
#endif // _TEST_H_
这是一个极为普通的头文件,我们在其中定义了一个宏。按照以往的经验,在头文件中定义宏是很常见的操作,但实际上此处有一个安全隐患。
此处我们给出一个原则,即:
对于不需要给外界知道的东西,都应该想办法将其隐藏起来
原因与面对对象思想中的封装相同,把接口暴露给外界,外界就可能会对其进行不必要的修改。此外,还有可能会跟别人所定义的宏发生冲突。
解决的方案有如下几种:
- 将此处的宏定义于实现文件中
- 在
cpp
文件中利用全局命名空间搭配常量的方式来定义魔数 - 利用枚举来定义魔数