ПредишенСледващото

В този план, има и други приложения, които виждате. Подписът.

Bad програмиране практика

Също така, "магически числа" се наричат ​​лошо програмиране практика, когато се намери в изходния текст и числената стойност не е ясно какво означава. Например, такава група ще бъде лошо:

Сега е ясно: Тази линия показва в центъра на спрайт на екрана - мерник. В повечето езици за програмиране, всички от стойностите, използвани при тези константи ще се изчислява в етап на съставяне и заместени на мястото на стойност на употреба. Ето защо, такава промяна в изходния текст не нарушава изпълнението на програмата.

В допълнение, магическите числа - потенциален източник на грешка в програмата:

  • Ако една и съща магическото число се използва в програмата повече от веднъж (или потенциално биха могли да се използват), тя ще изисква променят всяка поява на редакции (вместо един изправяне на име постоянна стойност). Ако не се коригират всички инстанции, има най-малко една грешка.
  • Най-малко един от магическото число на събитията може да бъде грешно първоначално, и това е доста трудно да се открие.
  • Вълшебната брой може да зависи от един параметър или косвено друг магическо число. Ако тези отношения не са ясно обозначени, те не са изпълнени, има най-малко една грешка.
  • В една модификация на появявания на магическия номер може да бъде погрешно промяна друг магически номер, независимо, но с еднаква стойност.

Магически числа и междуплатформена

Понякога магия номера вреда междуплатформена код [1]. Фактът, че C в операционните системи, 32- и 64-битови размера на Чар е гарантирана. къси и дълги дълго. докато размерът на вътр. дълго. size_t и ptrdiff_t може да се промени (първите две - в зависимост от предпочитанията на разработчиците на компилатора, последните две - в зависимост от повода на целевата система). В старата, или неквалифициран писан закон могат да се срещнат на "магическото число" е размерът на всякакъв вид - в прехода към машината с друг разряд те могат да доведат до фините бъгове.

Числата, които не са магия

Не всички числа, които искате да бъдат прехвърлени към константа. Например, кодът за Делфи:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!