什么时候进行条件编译是个好主意,什么时候是一个非常糟糕的主意?
通过条件编译我的意思是使用#ifdef
仅在某些条件下编译某些代码位。这#defined
s 本身可以位于公共头文件中,也可以通过-D
编译器指令。
好主意:
- 标头防护装置(在便携性方面你不能做得更好)
- 有条件的实现(处理平台差异)
- 调试特定检查(断言等...)
- 根据建议:
extern "C" {
and }
以便 C++ 实现和 API 的 C 客户端可以使用相同的标头
坏主意:
- 在编译标志之间更改 API,因为它强制客户端使用相同的编译标志更改其用途... urk!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)