可以#undef减少编译时间
Can #undef reduce compiling time?
#undef可以减少编译时间吗?我有成千上万的宏和一个250k的函数,但是它们需要15秒才能被解析。完全编译。我应该这样写代码吗?
#define f_WM_SETFOCUS 0xF59EE0A2
#define f_WM_KILLFOCUS 0xA4671283
#define f_WM_ENABLE 0x25A5D864
AddMacro('W', 'S', f_WM_SETFOCUS, WM_SETFOCUS, ___INT);
AddMacro('W', 'S', f_WM_KILLFOCUS, WM_KILLFOCUS, ___INT);
AddMacro('W', 'E', f_WM_ENABLE, WM_ENABLE, ___INT);
#undef f_WM_SETFOCUS
#undef f_WM_KILLFOCUS
#undef f_WM_ENABLE
#define ...
我想没有理由为什么它应该减少编译时间。由于这些宏一旦被读取,可能会保存在内存中,直到世界末日(我的意思是编译)-但它都依赖于编译器,所以你可能只是给它一个机会,看看会发生什么。
为了避免一直读取这些宏,您可以做的事情是只将具有这些宏的文件包含到实现文件中,而不包含到任何头文件中(这可能是可能的)。这样,该文件将只在实际使用这些宏时才被读取(这意味着只在使用它的编译单元中)。
HTH .
p。15秒的编译时间并不长;)
相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- 在已经使用Git的情况下减少编译时间
- C++常量数组的编译时间较长
- 编译时间文本到数字转换 (atoi)
- 在C++中执行 N 阶乘编译时间的 3 种不同/相同方法
- DLLexport 类模板实例(专用化),减少了仅标头模板库的编译时间
- 替换枚举以最大化编译时间检查的最佳方法
- 不同C++功能的编译时间
- 在预编译标头中实例化模板会缩短编译时间吗?
- 使用 SCons 提取每个编译单元的编译时间
- 将 lambda 函数转换为另一个编译单元中的普通函数会缩短编译时间吗?
- std :: Invoke_result_t编译时间语法错误
- 模板;constexpr;编译时间
- 如何实现声明功能-C 11,编译时间
- 如何减少编译时间:在包含未触及的头文件的情况下
- C++编译时间类型确定
- 特征:返回对具有编译时间尺寸检查的矩阵块的引用
- 在编译时间定义多个派生类
- 在编译时间创建查找表
- C 函数在编译时间返回类型