История изменений
Исправление KivApple, (текущая версия) :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор C не будет толком проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int. Самодокументируемый код это хороший тон.
Если это просто константа (например, размер какого-то буфера, магическое число и т. д.), то define.
Если нужна возможность менять значение при сборке через -D (build-time конфигурация), то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках (часто применяется с предыдущим пунктом, хотя иногда источник конфигурации другие исходные файлы или встроенные директивы компилятора), то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор C не будет толком проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int. Самодокументируемый код это хороший тон.
Если это просто константа (например, размер какого-то буфера, магическое число и т. д.), то define.
Если нужна возможность менять значение при сборке через -D (build-time конфигурация), то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках (часто применяется с предыдущим пунктом, хотя иногда источник конфигурации другие файлы или встроенные директивы компилятора), то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор C не будет толком проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int. Самодокументируемый код это хороший тон.
Если это просто константа (например, размер какого-то буфера, магическое число и т. д.), то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор C не будет толком проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int. Самодокументируемый код это хороший тон.
Если это просто константа, то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор C не будет толком проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int. Самодокументируемый код, это хороший тон.
Если это просто константа, то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор C не будет толком проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int.
Если это просто константа, то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum. Компилятор не будет проверять типы, но хотя бы программист будет сразу видеть, что переменная не обычный int.
Если это просто константа, то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.
Исправление KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции, типов объекта или ещё чего, то enum.
Если это просто константа, то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.
Исходная версия KivApple, :
Если это семантически enum, то есть несколько связанных значений типа режимов работы функции или ещё чего, то enum.
Если это просто константа, то define.
Если нужна возможность менять значение при сборке через -D, то define.
Если хочется навернуть какую-то логику на ifdef и прочих препроцессорных штуках, то define.