maxint/fi
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
MAXINT on vakio, joka vastaa kokonaisluvutyypin ylärajaa ISO 7185 -standardin mukaan.
Huomaa, että tämä arvo muuttuu kääntäjän tilan perusteella eikä sillä ole mitään tekemistä isäntä- tai kohdekoneen ominaisuuksien kanssa.
Jos halutaan tarkistaa osoiteavaruuden koko niin se tarkistetaan sizeof(pointer) käskyllä.
Jos halutaan tietää, onko käytössä CPU, jossa on 64-bittinen ALU niin tarkistetaan, onko symbolia cpu64 määritetty.
Seuraava esimerkki kuvaa, miten nämä arvot liittyvät:
program maxvals;
const width = 20;
begin
writeln;
writeln( 'these change depending on compiler mode:' );
writeln( '----------------------------------------' );
writeln( 'maxint: :', maxint : width );
writeln( 'high( integer ) :', high( integer ) : width );
writeln;
writeln( 'constant, regardless of mode or target: ' );
writeln( '----------------------------------------' );
writeln( 'high( int32 ) :', high( int32 ) : width );
writeln( 'high( int64 ) :', high( int64 ) : width );
writeln;
writeln( 'variable, depending on target cpu:' );
writeln( '----------------------------------------' );
writeln( 'sizeof( pointer ) :', sizeof( pointer ) : width );
writeln;
writeln( 'compile-time definitions:' );
writeln( '----------------------------------------' );
{$IFDEF cpu64} writeln( 'cpu64' ); {$ENDIF}
{$IFDEF cpu32} writeln( 'cpu32' ); {$ENDIF}
{$IFDEF cpu16} writeln( 'cpu16' ); {$ENDIF}
writeln;
end.
Vertaile tuloksia kääntäjän tiloilla -Mtp vs -Mobjfpc, esimerkiksi:
fpc -Mtp maxvals.pas && ./maxvals fpc -Mobjfpc maxvals.pas && ./maxvals