|
Тема |
Re: Не е кой знае колко странна [re: ~!@$%^amp;*()_+] |
|
Автор | Pжeвckи (Нерегистриран) | |
Публикувано | 27.01.08 01:44 |
|
|
Не е проблем. Т.е. ясно дефинирани са ситуациите:
1. На С (нема дефиниране в цикъла):
1.1 Ако променливата е инициализирана преди цикъла, то той ще се извърти толкоз пъти колкото е зададено от нея.
1.2 Ако променливата не е инициализирана преди цикъла, вариантите са два:
1.2.1 Ако И заема всеки път една и съща стойност преди цикъла, макар и да не е инициализирана специално за него, то тогава ГОТО 1.1
1.2.2 Ако И се емблияе както си иска, всеки път ще има някакъв псевдослучаен брой въртенета на цикъла. Шитня като цяло що се отнася до чек на бъга, щото може да работи, може и да не работи както ни се иска. Като цяло вероятността да работи както ни се иска е 1/макс(И) (естествено, ако някой умник не е декларирал И като флоат, ама ако видиш такова нещо най-добре е въпросният да бъде гръмнат) От личен опит обаче знам, че докато програмата е в процес на тестване И ще е равно точно на колкот ни се иска, и бъга ще се прояви чак след като програмата е продадена в... 1 000 000 екземпляра да кажем. Или дивайса в който е дадения код е монтиран на мачу си у пикчу, и требе да следва 10 дневна командировка, от която 2 дни летеж със самолет, и 8 дни път "на електричке" по транссибирската магистрала.
Така е, щото на фор-а се изкомпилирва на асм до цикъл със следусловие, но инициализация преди него.
2. На ++:
2.1 Променливата е дефинирана преди цикъла - ГОТО 1
2.2 Променливата е дефинирана в цикъла - компилатора люто се сърди и нище.
Като цяло, не си падам по такива гурущини, нищо, че по принцип не си падам и по стандартите. (Последното е една от причините да предпочитам С пред С++ и К&Р С пред АНСИ С)
|
| |
|
|
|