Перечисления или макрос. Что лучше [дублировать]

0

Я должен хранить множительные значения одного и того же типа.

Я выбрал массив.

Но эти значения массива будут использоваться в нескольких частях программы.

Поэтому я решил получить доступ к значениям массива с помощью макроса.

arr[VALUE_1]

Здесь VALUE_1 - это макрос

Другим обходным решением для макроса является перечисление

enums{
VALUE_1,
VALUE_2
}

Интересно, что перечисления будут потреблять некоторую память.

Что лучше для эффективного программирования?

  • 1
    На каком языке мы говорим?
  • 0
    @venerik Добавлен тег C ++
Показать ещё 2 комментария
Теги:
design

2 ответа

3

Интересно, что перечисления будут потреблять некоторую память.

Перечислители не существуют во время выполнения. Это не объекты, а скорее константы. И их имена - это prvalues.

Они заменяются их значениями прямо во время компиляции. Таким образом, нет никакой разницы в производительности любыми способами.

И следуйте общим рекомендациям: Предпочитайте enum на макросы.

1

В C++ перечисления практически идентичны константам во время выполнения, поэтому не будет никакой разницы с макросами при запуске программы. Однако из исходной точки зрения перечисления понимаются компилятором как набор связанных значений, входящих в один тип. Это может быть очень полезно для проверки типа вашего кода. Кроме того, это заставит вас правильно обрабатывать ваши константы, если вы еще этого не сделали, для лучшей общей базы кода.

Просто используйте перечисления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню