сигнатура даних
Цей термін має також інші значення див. Сигнатура.
Погана практика програмування
Також «магічними числами» називають погану практику програмування, коли в початковому тексті зустрічається числове значення і неочевидно, що воно означає. Наприклад, такий фрагмент буде поганим:
Тепер зрозуміло: цей рядок виводить в центр екрана спрайт - перехрестя прицілу. У більшості мов програмування все значення, які використовуються для таких констант, будуть обчислені ще на етапі компіляції і підставлені в місця використання значень. Тому така зміна вихідного тексту не погіршує швидкодію програми.
Магічні числа та кроссплатформенность
Іноді магічні числа шкодять платформ коду [1]. Справа в тому, що в Сі в 32- і 64-бітних ОС гарантується розмір типів char. short і long long. в той час як розмір int. long. size_t і ptrdiff_t може змінюватися (у перших двох - в залежності від уподобань розробників компілятора, в останніх двох - у залежності від розрядності цільової системи). У старому або некваліфіковано написаному коді можуть зустрічатися «магічні числа», що означають розмір будь-якого типу - при переході на машини з іншого розрядністю вони можуть привести до важковловимий помилок.
Числа, які не є магічними
Не всі числа потрібно переносити в константи. Наприклад, код на Delphi:
Сенс чисел 0 і 1 зрозумілий, і подальшого пояснення не потрібно.
Також можна не робити константами:
- 0 в якості false і 1 в якості true (якщо, звичайно, в мові немає власних констант false і true);
- Підстави систем числення - 10 (підстава десяткової системи), 60 (секунд в хвилині), 1000 (мілісекунд в секунді).