Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

значение неинициализированной переменной целого типа


1234567890 ©   (2011-12-06 17:28:00) 

если переменная N типа Integer не инициализирована, то ее значением всега будет какое-то положительное число?, или может быть отрицательное?


OW   (2011-12-07 13:48:00) [1]

проверте

> var
>  N: Integer;
> begin
>  N := FDataStream.Size;
Assert(FDataStream.Size >= 0);
sowmessage('first assert ok');
>  Assert(N >= 0);

> end;


DiamondShark   (2011-12-06 22:49:00) [2]

Удалено модератором


Сергей М.   (2011-12-06 19:50:00) [3]


>  N := FDataStream.Size;
>  {  } // в этих скобках - твоя половая драма, не имеющая к "Integer не инициализирована" никакого отношения
>  Assert(N >= 0);


Sha   (2011-12-06 19:08:00) [4]

прога обманывает, ты ей не верь


1234567890   (2011-12-06 18:28:00) [5]


> Бездомный


в стриме - имена изображений. вероятность, что там имен на 2Гб почти нулевая.


Бездомный   (2011-12-06 18:19:00) [6]

program Project1;

uses SysUtils;

procedure Test();
var
 I64: Int64;
 I: Integer;
begin
 I64 := 2147483660;
 I := I64;
 Assert(I>0);
end;

begin
 Test();
end.


Dimka Maslov   (2011-12-06 18:17:00) [7]


> а в каком случае он может стать -

Когда старший бит равен единице. Вообще-то для размеров принято пользоваться беззнаковыми типами.


1234567890   (2011-12-06 18:12:00) [8]


> property Size: Int64
> - например 2147483648


а в каком случае он может стать -


han_malign   (2011-12-06 18:08:00) [9]

property Size: Int64
- например 2147483648


Dimka Maslov   (2011-12-06 18:05:00) [10]

после N := FDataStream.Size переменная уже инициализирована.


1234567890   (2011-12-06 17:54:00) [11]

у меня сработал assert в таком коде:


var
 N: Integer;
begin
 N := FDataStream.Size;
 {  }
 Assert(N >= 0);
 {  }
end;


как такое может быть, stream.size ведь никак не может быть < 0.


Anatoly Podgoretsky   (2011-12-06 17:34:00) [12]

> 1234567890  (06.12.2011 17:28:00)  [0]

О каком значении можно говорить, раз не инициализирована


Ega23   (2011-12-06 17:32:00) [13]


> то ее значением всега будет какое-то положительное число


Её значением всегда будет число в промежутке [0..$FFFFFFFF]


Наверх

Титульная страница Поиск, карта сайта Написать письмо