2013-05-26 85 views
0

#undef是否可以減少編譯時間?我有成千上萬的宏和一個250k函數,但它們需要長達15秒的時間才能完全編譯完成。我應該寫這樣的代碼:#undef可以減少編譯時間嗎?

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

當然很容易嘗試它,看看有什麼區別。 –

+0

謝謝。我現在會嘗試。但是有沒有其他解決方案可以加速我的編譯器?國際海事組織的進程是不容易的... – xersi

+6

15秒的編譯時間?!我希望我有你的問題 – JustSid

回答

1

我想沒有理由爲什麼它應該減少編譯時間。由於這些宏一旦被讀取,可能會一直保留在內存中直到世界(我的意思是編譯) - 但它都依賴於編譯器,所以你可能只是給它一個機會,看看會發生什麼。

你可以做的事情,以避免閱讀這些宏一直只是包含文件與這些宏到實現文件,並從來沒有到任何頭(這可能是可能的)。 這種方式只有在實際使用這些宏時纔會讀取此文件(這意味着僅在使用它的編譯單元中)。

HTH。

PS。 15秒的編譯時間不是很長;

+0

感謝您的回答。你是對的,的確#undef並沒有幫助我減少編譯時間...... – xersi

相關問題