[ 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.