2014-11-24 3 views
2

Я смотрю на тонну кода:Зачистка код #define

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

Что бы лучше, чтобы изменить это? Enum? Индивидуальный const int? Или что-то другое?

У меня есть небольшой опыт препроцессора материала (а не что много с Xcode, поэтому считаю, что это близко к Noobie вопрос), но я достаточно уверен, что я не нужен этот висит вокруг кодовую I» унаследован. Однако не уверен, что такое лучшая практика.

+0

Нет никакой «лучшей» практики, только несколько более или менее посредственных. –

+0

Хорошо, спасибо. Таким образом, как enum, так и const int были бы разумными способами замены кода препроцессора? – HenryRootTwo

+0

У всех есть свои плюсы и минусы. Некоторые люди категорически утверждают, что один лучше других, но это действительно зависит от ваших обстоятельств и приоритетов. –

ответ

0

«Лучшее» - очень субъективная концепция, лучшее, на что вы могли бы надеяться :-) было бы понять плюсы и минусы каждой возможности.

Там нет абсолютно ничего неправильно с помощью #define вроде этого, чтобы создать константы, единственное, что мне не нравится то, что вы часто не получают «символы» прошли весь путь до отладчика. Но на самом деле это не имеет никакого отношения к языку как таковому, больше относится к инструментам сборки, которые вы используете.

И, конечно, нет ничего плохого в том, чтобы оставить код в покое, если он работает нормально. Я бы не стал что-то менять только, потому что вы думаете, что есть более чистый способ, так как это всегда рискует ввести новые проблемы.

Если у вас возникли существенные изменения в соответствующем коде для других причин, то я также подумал об очистке от возможного воздействия, которое может иметь место в других местах.

Смежные вопросы