2014-11-24 85 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像创建常量,我不喜欢它的唯一的事情是,你往往没有得到“符号”,通过一个调试器通过了所有的方式。但实际上这与语言本身无关,更多与您使用的构建工具有关。

而且,如果代码正常工作,单独留下代码肯定没有问题。我不会改变只是因为你认为有一个更清洁的方式,因为它总是冒着引入新问题的风险。

如果你发现自己永远不必做出相关的代码实质性的改变对于一些其他原因,这时候我会考虑清理以及,回火防止可能产生的影响,可能在别处。