maxint/fi
From Free Pascal wiki
Revision as of 08:12, 17 March 2019 by Djzepi (talk | contribs) (Created page with " {{maxint}} <br /> '''MAXINT''' on vakio, joka vastaa kokonaisluvutyypin ylärajaa [http://www.moorecad.com/standardpascal/iso7185.html#6.7.2....")
│
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, tarkistetaan se sizeof(pointer).
Jos halutaan tietää, onko käytössä CPU, jossa on 64-bittinen ALU, tarkista, onko symboli 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