2014-11-24 189 views
2

的代碼,我看這樣一噸的代碼:剝離的#define

#define CONSUMPTION_MODE_MOBILE 0 
#define CONSUMPTION_MODE_WIFI 1 
#define CONSUMPTION_MODE_COMBINED 2 

什麼是最好更改爲?枚舉?個人const int的?或者是其他東西?我沒有什麼經驗的預處理器的東西(而不是與Xcode很多,所以認爲這是一個接近noobie的問題),但我相當肯定我不需要這個懸掛在代碼庫我'已經繼承。但不知道最佳做法是什麼。

+0

沒有「最好」的做法,只有幾個或多或少是平庸的。 – 2014-11-24 03:28:07

+0

好的,謝謝。因此,枚舉和const int都將是明智的方式來取代預處理器代碼? – HenryRootTwo 2014-11-24 19:43:17

+0

他們都有自己的優缺點。有些人強烈地爭論說一個人比其他人好,但這取決於你的情況和優先事項。 – 2014-11-24 20:36:25

回答

0

「最好」是一個非常主觀的概念,你可能希望得到的最好的:-)將會理解每種可能性的優缺點。

有絕對沒有錯使用#define像創建常量,我不喜歡它的唯一的事情是,你往往沒有得到「符號」,通過一個調試器通過了所有的方式。但實際上這與語言本身無關,更多與您使用的構建工具有關。

而且,如果代碼正常工作,單獨留下代碼肯定沒有問題。我不會改變只是因爲你認爲有一個更清潔的方式,因爲它總是冒着引入新問題的風險。

如果你發現自己永遠不必做出相關的代碼實質性的改變對於一些其他原因,這時候我會考慮清理以及,回火防止可能產生的影響,可能在別處。