Difference between revisions of "maxint/fi"
From Free Pascal wiki
Jump to navigationJump to search (Created page with " {{maxint}} <br /> '''MAXINT''' on vakio, joka vastaa kokonaisluvutyypin ylärajaa [http://www.moorecad.com/standardpascal/iso7185.html#6.7.2....") |
|||
Line 8: | Line 8: | ||
Huomaa, että tämä arvo muuttuu [[Compiler Mode/fi|kääntäjän tilan]] perusteella eikä sillä ole mitään tekemistä isäntä- tai kohdekoneen ominaisuuksien kanssa. | Huomaa, että tämä arvo muuttuu [[Compiler Mode/fi|kääntäjän tilan]] perusteella eikä sillä ole mitään tekemistä isäntä- tai kohdekoneen ominaisuuksien kanssa. | ||
− | Jos halutaan tarkistaa osoiteavaruuden koko | + | Jos halutaan tarkistaa osoiteavaruuden koko niin se tarkistetaan '''[[SizeOf/fi|sizeof]]([[Pointer/fi|pointer]])''' käskyllä. |
− | Jos halutaan tietää, onko käytössä CPU, jossa on [[64 bit|64-bittinen]] ALU | + | Jos halutaan tietää, onko käytössä CPU, jossa on [[64 bit|64-bittinen]] ALU niin tarkistetaan, onko symbolia '''cpu64''' määritetty. |
Seuraava esimerkki kuvaa, miten nämä arvot liittyvät: | Seuraava esimerkki kuvaa, miten nämä arvot liittyvät: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
program maxvals; | program maxvals; | ||
const width = 20; | const width = 20; |
Latest revision as of 08:53, 30 June 2019
│
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