2013-02-09 58 views
1

例如,如果我有這樣的代碼:我可以創建一個宏來執行調試或發佈代碼嗎?

#ifdef _DEBUG 
    mPluginsCfg = "plugins_d.cfg"; 
#else 
    mPluginsCfg = "plugins.cfg"; 
#endif 

我可以定義一個宏,看起來像

#define DEBUG_RELEASE(debug_code, release_code) 

,然後用它像這樣;

DEBUG_RELEASE(mPluginsCfg = "plugins_d.cfg";,mPluginsCfg = "plugins.cfg";) 

回答

1

我敢肯定,它的作品,我幾乎確保它是定義工作。

#ifdef _DEBUG 
#define DEBUG_RELEASE(d,r) d 
#else 
#define DEBUG_RELEASE(d,r) r 
#endif 

我不確定在預處理器宏的美妙世界中是否看到過任何醜陋的東西。

+0

如果你還沒有看到任何醜陋的東西,你還沒有看到人們用宏做出的更瘋狂的事情。但是,是的,至少在像OP一樣使用它時,這相當難看。 – delnan 2013-02-09 21:57:44

+0

哦,就這麼簡單?出於某種原因,我試圖在#define中使用#ifdef來做到這一點。我不明白爲什麼這是醜陋的壽。我的意思是它擊敗了每次都不寫完整的東西? – BringMeAnother 2013-02-09 21:59:13

+0

@delnan我同意。如果你想在C世界有足夠的時間,你會看到更多醜陋的東西。雖然它非常強大,可以做許多隻有C++纔有的功能。 – texasbruce 2013-02-09 22:00:28

相關問題