可以#undef减少编译时间

Can #undef reduce compiling time?

本文关键字:编译 时间 #undef 可以      更新时间:2023-10-16

#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秒的编译时间并不长;)