#undef可以减少编译时间吗?

时间:2013-05-26 07:56:21

标签: c++ performance visual-c++ coding-style compilation

#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 ...

1 个答案:

答案 0 :(得分:0)

我猜没有理由减少编译时间。 由于这些宏一旦被读取,可能会保留在内存中直到世界(我的意思是编译) - 但它依赖于所有编译器,所以你可能只是给它一个机会,看看会发生什么。

你可以做的就是不要一直读取那些宏,只是将包含这些宏的文件包含在实现文件中,而不是包含在任何头文件中(这可能是可能的)。 这样,只有在实际使用这些宏时才会读取此文件(这意味着仅在使用它的编译单元中)。

HTH。

PS。 15秒的编译时间不会太长;)