Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.046 c
2-1189414509
andreoman
2007-09-10 12:55
2007.10.07
отобразить модальное окно поверх немодального


2-1189435060
qaPavel
2007-09-10 18:37
2007.10.07
MessageBox +отрисовка


1-1185351667
Unknown user
2007-07-25 12:21
2007.10.07
Нейронные сети


6-1170760601
inex
2007-02-06 14:16
2007.10.07
Ошибка отправки ответа ServerSocket


2-1189583797
Washington
2007-09-12 11:56
2007.10.07
В чём ошибка?