Правила программирования на С и С++. Главы 1-6 Страница 75. Не нужно магических чисел
|
Страница 75 из 93 68. Не нужно магических чисел.
В основном тексте вашей программы не должно быть чисел в явном виде. Используйте перечислитель или константу для того, чтобы дать числу символическое имя. (Я уже объяснял, почему для этого не очень хорошо применять #define). Тут есть два преимущества: - Символическое имя делает величину самодокументируемой, устраняя необходимость в комментарии.
- Если число используется более чем в одном месте, то менять нужно лишь одно место - определение константы.
Я иногда делаю исключение из этого правила для локальных переменных. Например, в следующем фрагменте используется магическое число (128): f() { char buf[128] ... fgets( buf, sizeof (buf) / sizeof(*buf), stdin ); } Я использовал sizeof() в вызове fgets(), поэтому изменения размера массива автоматически отражаются в программе. Добавление дополнительного идентификатора для хранения размера добавит излишнюю сложность. |