Магічне число (програмування) - це

сигнатура даних

Цей термін має також інші значення див. Сигнатура.

Погана практика програмування

Також «магічними числами» називають погану практику програмування, коли в початковому тексті зустрічається числове значення і неочевидно, що воно означає. Наприклад, такий фрагмент буде поганим:

Тепер зрозуміло: цей рядок виводить в центр екрана спрайт - перехрестя прицілу. У більшості мов програмування все значення, які використовуються для таких констант, будуть обчислені ще на етапі компіляції і підставлені в місця використання значень. Тому така зміна вихідного тексту не погіршує швидкодію програми.

Магічні числа та кроссплатформенность

Іноді магічні числа шкодять платформ коду [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 (мілісекунд в секунді).

Примітки

Схожі статті