[ franjo_tahi2 @ 14.02.2014. 13:02 ] @
| E dakle, isti kod daje različite podatke na dva različita kompa:
Code:
function Nesto: MojTyp;
var g: word;
begin
...
g := 30;
...
g := g - 31;
...
result.g := g;
end;
nakon g := g - 31
1. komp daje g := -1
2. komp daje g := maxWord - 1
Korisimo Delphi 2007
na jednom kompu je Vista64, a na drugom Win8
Exe kod pokrenut na trečem kompu daje isto različite rezultate.... |
[ savkic @ 14.02.2014. 16:20 ] @
> 1. komp daje g := -1
> 2. komp daje g := maxWord - 1 // Ovde treba biti MaxWord
To je isti rezultat, samo zavisi kog ti je tipa Result.g i kako ga interpretiraš.
Word tip sam po sebi je namenjen prirodnim brojevima, ako ti je isključen range checking nećeš dobiti grešku i g će dobiti vrednost Word(-1).
Pitanje je šta se dalje dešava kod dodele Result.g i kod prikaza vrednosti tog broja, ako npr radiš konverziju u Integer onda ćeš dobiti 65535 a ako konvertuješ u Smallint dobićeš -1.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.