编译时条件包含.分段标头与包括整个实现



我正在重构一个包含大量长头文件的代码库(为了便于使用,并简化编译,标头包含接口和实现(。

代码库避免了像野火那样的多态性,因此它使用如下所示的宏解析内部存储类型:

#if defined USE_NIBBLE_CODES
#include "nibble.h"
#elif defined USE_BUTECODES 
#include "byte.h"
....
#endif

我的问题是,假设上述实现头文件有大量共同的行,是否最好将它们合并为一个,并使用宏来区分实现之间的差异。

实现头文件有大量共同的行,最好将它们合并为一个,并使用宏来分隔实现之间的差异。

是的。。。分解通用代码可以更轻松地确保错误修复和改进正确应用于两者。

也就是说,还有其他方法可以支持编译时的行为选择,这可能比在任何地方使用条件编译更好,例如使用它一次,在两个"策略"类之间进行选择,每个行为都有支持代码。

最新更新