![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
значение неинициализированной переменной целого типа
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]