Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизБитовые переменные Найти похожие ветки
← →
Sholah_Weras © (2006-10-26 16:57) [0]Тут такой косяк. Ест ьпеременная f1, битовая. Обявлена в процедуре потока. При начале выполнения процедуры в нее записывается левое значение (140). Что за чудо-то такое? Пробовал менять тип переменной и ее место объявления. Один черт, 140 записывается. Почему так?
← →
Anatoly Podgoretsky © (2006-10-26 16:59) [1]В Дельфи нет битовых переменных
← →
Anatoly Podgoretsky © (2006-10-26 16:59) [2]
> Один черт, 140 записывается. Почему так?
Так звезды сложились
← →
Elen © (2006-10-26 17:04) [3]
> Ест ьпеременная f1, битовая
Byte? (некоторые ее читаюк как "бите")
← →
Сергей М. © (2006-10-26 17:05) [4]
> Ест ьпеременная f1, битовая
Косяк. (*)
> Обявлена в процедуре потока
см. (*)
> левое
Бывает и правое.
> Что за чудо-то такое?
Восьмое чудо) .. Известно ж)..
> Пробовал менять тип переменной и ее место объявления
Пробуй еще .. авось "заработает" ..
> Почему так?
потомушта
← →
palva © (2006-10-26 17:25) [5]Переменная объявлена внутри процедуры - значит локальная - значит память под нее выделяется в стеке - а в этой памяти было что-то записано раньше - оказалось 140.
← →
Desdechado © (2006-10-26 17:39) [6]Всем давно известно, что переменные перед использованием нужно инициализировать.
← →
Sholah_Weras © (2006-10-26 21:59) [7]2 Anatoly Podgoretsky
Я имел ввиду, byte.
2 Сергей М
Поглумились? Помогли советом? Респект и уважуха за такую помощь.
2 Desdechado
Инициализировать? Как так, покажите пожалуйста на примере.
← →
Desdechado © (2006-10-26 22:02) [8]Инициализировать - это присваивать в начале процедуры какое-то значение по умолчанию, которое потом можно интерпретировать.
← →
Leonid Troyanovsky © (2006-10-26 22:11) [9]
> Sholah_Weras © (26.10.06 16:57)
> Тут такой косяк. Ест ьпеременная f1, битовая. Обявлена в
> процедуре потока. При начале выполнения процедуры в нее
> записывается левое значение (140). Что за чудо-то такое?
Поверим на слово, что 140.
Ну, а проблема-то в чем?
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2006-10-26 23:56) [10]
> Я имел ввиду, byte.
Это меняет дело, а то я весь вечер мучался, пытаясь понять как в бит записать 140.
Но как было сказано - Так звезды сложились, не хочешь с ними играть в рулетку, инициализируй в нужное тебе значение, не пускай это дело на самотек.
← →
Sholah_Weras © (2006-10-27 20:59) [11]Решил все-таки, что со звездами хутки плохи. Все переменные инициализировал. Только вот штука в том, что в f1 записывается что надо (0 для начала) и код с участием этой переменной выполняется. А есть у меня еще такая переменная f2, тоже byte. Тоже нуль прописывается, но вот код с ее использованием не работает.
for j:=0 to 9 do //для f1 все абсолютно идентично, разве что
begin //не n1 используется, а n.
if XY[f2] > n1 then
begin
Inc(n1,30);
Inc(k1);
end
else
begin
Inc(f2,2);
Break;
end;
end;
Думал-думал, что за глюки такие, так к ничему и пришел.
← →
DrPass © (2006-10-27 21:21) [12]Глюков нет - есть ошибки в программе. Этот код ничего никому не говорит. Что у тебя в переменных, что должно происходить, и что тебя не устраивает?
← →
Sholah_Weras © (2006-10-27 21:43) [13]В программе два таких цикла. В одном f1 и n, в другом f2 и n2. В первом случае Inc(f2,2) и Break выполняются, а во втром даже точек прерывания напротив Inc(f1,2) и Break не стоит (такие сининькие слева). Не могу понять почему.
← →
DrPass © (2006-10-27 22:01) [14]Просто так подобных вещей не бывает. Выключи оптимизатор и проверь пошагово.
← →
Sholah_Weras © (2006-10-27 22:09) [15]2 DrPass
Если бы было все атк просто. Я уже второй день сижу в этом отладчике. Пробовал менять имена и типы переменных. Нуль. Сейчас опять буду пытаться разобраться.
← →
DiamondShark © (2006-10-27 22:10) [16]
> код с ее использованием не работает
любой код всегда работает.
ты, видимо, хотел сказать, что тебя не устраивает результат работы.
тогда выкладывай ожидаемый результат, фактический результат, и свои причины, по которым разница между первым и вторым тебя не устраивает.
← →
DiamondShark © (2006-10-27 22:14) [17]
> не стоит (такие сининькие слева). Не могу понять почему
потому что компилятор для них не сгенерировал маш. код.
к сожалению, более развёрнутых объяснений дать невозможно, т.к. вместо действительного проблемного кода приведено чёрт-те что.
← →
RASkov (2006-10-27 23:01) [18]> [13] Sholah_Weras © (27.10.06 21:43)
> Не могу понять почему.
И в самом деле чёта непонятка какая-то. Ты б привел поболее своего кода. Мож чеб и надумали.
← →
DrPass © (2006-10-27 23:58) [19]
> Sholah_Weras © (27.10.06 22:09) [15]
Все так просто и есть. Такие сбои бывают только в двух случаях - если накосячил программист и если битая планка памяти
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.055 c