Текущий архив: 2007.10.07;
Скачать: CL | DM;
Вниз
Нужна переменная - обнули явно:) Найти похожие ветки
← →
Vlad Oshin © (2007-09-10 17:07) [0]обнули переменные, даже если все знаешь
ОБНУЛИ..
пусть компилятор их делает нулевыми - все равно обнули
мало ли забудешь что уже использовал
ps
убил около много часов...
b:byte
...
inc(b); //b=6
а вот b до этого был заюзан, оказывается...
← →
homm © (2007-09-10 17:07) [1]Обсуждение закрыто? :)
← →
Vlad Oshin © (2007-09-10 17:08) [2]и пусть - главное, обнулите :)
← →
stone © (2007-09-10 17:09) [3]
> Vlad Oshin © (10.09.07 17:07)
> обнули переменные, даже если все знаешь
Буратино дали два яблока. Потом еще два. Сколько яблок теперь у Буратино?
← →
Германн © (2007-09-10 17:09) [4]Традиции программирования3 ?
:-)
← →
Ega23 © (2007-09-10 17:15) [5]
> Буратино дали два яблока. Потом еще два. Сколько яблок теперь
> у Буратино?
Больше трёх.
← →
tesseract © (2007-09-10 17:15) [6]
> пусть компилятор их делает нулевыми - все равно обнули
В этой фразе мудрость бессоных веков. И заработанная мигрень от бессоных ночей.....
← →
tesseract © (2007-09-10 17:16) [7]
> Больше трёх.
Нет. У него МАССИВ яблок :-D.
PS : Адаптация примера из "психбольница в руках пациентов" :-D
← →
clickmaker © (2007-09-10 17:16) [8]не меньше двух.
во второй фразе не сказано явно, чего дали
← →
Ega23 © (2007-09-10 17:17) [9]
> не меньше двух.
Согласен.
> во второй фразе не сказано явно, чего дали
и кому.
← →
Azize © (2007-09-10 17:18) [10]
> clickmaker © (10.09.07 17:16) [8]
ни одного
второй раз давали апельсины а яблоки он уже съел))
← →
Sandman31 (2007-09-10 17:18) [11]>мало ли забудешь что уже использовал
Главная ошибка в этом. Нужна переменная - заведи новую.
← →
clickmaker © (2007-09-10 17:18) [12]
> b:byte
> ...
> inc(b); //b=6
а ты, Влад, всем переменным такие содержательные имена даешь?
Тогда понятно, что "убил около много часов"
:)
← →
Плохиш © (2007-09-10 17:22) [13]
> Vlad Oshin © (10.09.07 17:07)
> обнули переменные
> b:byte
> ...
> inc(b); //b=6
> а вот b до этого был заюзан, оказывается
Интересная логика, однако...
Предлагается, обнулить b и сразу увеличить на единицу? Убивать надо за такие программы.
← →
Vlad Oshin © (2007-09-10 17:29) [14]всем спасибо
> Плохиш © (10.09.07 17:22) [13]
персонально
← →
Anatoly Podgoretsky © (2007-09-10 17:36) [15]> Ega23 (10.09.2007 17:15:05) [5]
Одно, остальные он съел
← →
Anatoly Podgoretsky © (2007-09-10 17:39) [16]> Vlad Oshin (10.09.2007 17:07:00) [0]
Не требуется обнулять если просто нужна переменная, а обнулять надо тогда, когда предполагается использование ее значения, при том не обнулять, а присвоить нужное значение до такого использования. Зачем обнулять здесь
a := 0
a := Func(x);
Предопложений о значение переменной делать не стоит, не Нострадамус.
← →
Германн © (2007-09-10 17:40) [17]
> Anatoly Podgoretsky © (10.09.07 17:36) [15]
Ни одного. По совету лисы А и кота Б он их закопал у Якубовича
← →
Игорь Шевченко © (2007-09-10 17:46) [18]
> a := 0
> a := Func(x);
вдруг первый раз не присвоится ? (Кстати, вполне реальный случай встретился в коде, автор кода дал именно такой ответ)
← →
stone © (2007-09-10 17:48) [19]> > во второй фразе не сказано явно, чего дали
яблоки
> и кому.
Буратино
ЗЫ. К словам в условии не придираться. Весь смысл задачи в сабже.
← →
Eraser © (2007-09-10 17:50) [20]
> a := 0a := Func(x);
кстати в данном случае компилятор выдаст соответствующий hint, как и в случае не обнуления переменной.. а вот повторное использование переменных это зло, т.к. в этом случае компилятор обычно не предупреждает.
← →
clickmaker © (2007-09-10 17:51) [21]
> [18] Игорь Шевченко © (10.09.07 17:46)
тут как-то был вопрос "как обнулить переменную полностью". Это не того же автора?
← →
DVM © (2007-09-10 17:51) [22]
> вдруг первый раз не присвоится ?
а ну как и во второй раз не присвоится?
← →
Игорь Шевченко © (2007-09-10 17:54) [23]DVM © (10.09.07 17:51) [22]
> а ну как и во второй раз не присвоится?
Тогда ошибка будет.
clickmaker © (10.09.07 17:51) [21]
> тут как-то был вопрос "как обнулить переменную полностью".
> Это не того же автора?
Нет
← →
Суслик © (2007-09-10 17:59) [24]Всего в меру. И согласно документации.
к сож. не все специфицировано. вот, например, я не нашел объявления, что переменные класса (те, которые class var a: integer; внутри декларации классов) в D2007 обнуляются. Поэтому обнуляю все равно.
← →
Игорь Шевченко © (2007-09-10 17:59) [25]Собственно, сабж:
....
Rec:=NIL;
Key:=NIL;
Rec:=BasePtr^.RecPtrByName("A");
if Rec=NIL then Fail;
Key:=Rec^.TablePtr^.KeyDescPtrByName("B");
if Key=NIL then Fail;
.....
← →
Суслик © (2007-09-10 18:01) [26]да, Игорь, как-то некрасиво.
← →
Игорь Шевченко © (2007-09-10 18:06) [27]Суслик © (10.09.07 18:01) [26]
Зато рекомендации автора ветки выполнены полностью.
> Поэтому обнуляю все равно.
И твои тоже... ;)
← →
Суслик © (2007-09-10 18:22) [28]
> И твои тоже... ;)
:) все же не видел я в документации, что они очищают классовые переменные.
правда, если подумать, то они не могут этого не делать :)
← →
oldman © (2007-09-10 18:56) [29]
> Vlad Oshin © (10.09.07 17:07)
> ps
> убил около много часов...
>
> b:byte
> ...
> inc(b); //b=6
> а вот b до этого был заюзан, оказывается...
Предположим, что там, где b был заюзан, ты его обнулил.
Легче стало???
← →
Denis_ © (2007-09-10 19:07) [30]
> Предположим, что там, где b был заюзан, ты его обнулил.
> Легче стало???
По видимому, стало.
← →
Суслик © (2007-09-10 19:33) [31]писать надо правильно.
кстати, а не переменные обнулять.
код нужно проссматривать. тогда и обнулять не будешь забывать.
вообще обозначенная проблема типична для людей не просмтаривающих код.
т.е. написали кусок 1, потом кусок 2, потом кусок 3. Все ОК. Но потом кусок 2 удалили. А просмотреть полученный результат забыли на предмет побочных эффектов.
← →
Denis_ © (2007-09-10 19:36) [32]куски должны быть процедуры.на паскале ещё учили - разбей прогу на более простые куски, те ещё, потом опять ещё:).получишь хороший, нечитаемый код.
← →
Vlad Oshin © (2007-09-11 10:39) [33]да все - допустим
это же анекдот (с)
в частности b была параметром ошибки функции, где был 100% уверен, что она = 0.
т.е. вернется без ошибки. Да и не важно, просто надо было параметр
но это уже при отладке выяснилось
там был or еще и результат конечный устраивал
т.е. написал ты функцию, которая возвращает код ошибки, поставил первое что попалось под руку, раз формально требует, и ЗАБЫЛ. блин
ладно. проехали
← →
jack128_ (2007-09-11 13:34) [34]
> правда, если подумать, то они не могут этого не делать :
> )
почему это не могут? понятно, что эти переменные чем то инициализированы. Но формально говоря - не обязательно нулем.
← →
Virgo_Style © (2007-09-11 13:45) [35]Vlad Oshin © (10.09.07 17:07)
Нужна переменная - обнули явно:)
не нужна - очисть ее совсем ;-)
Страницы: 1 вся ветка
Текущий архив: 2007.10.07;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.026 c