Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1161697308
Дева
2006-10-24 17:41
2006.11.12
Перемещение в TDBGrid


15-1161153013
LaidBack
2006-10-18 10:30
2006.11.12
Можно застрелиться...


2-1161928283
ГореПрограммер
2006-10-27 09:51
2006.11.12
Выбор папки


15-1161940134
Hg
2006-10-27 13:08
2006.11.12
Примеры к книге Indy In Depth


15-1161978224
Sergey Masloff
2006-10-27 23:43
2006.11.12
Вопрос. Не мешает ли руководителю умение программировать.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский