Sign in Join
Wiki copytemporary

MaxInt: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: MaxInt

OldNewLine
1+\
2+**MaxInt** is a global [[Constant|constant]], equal to the upper bound of the [[Integer|integer]] type, [per the ISO 7185 standard](http://www.moorecad.com/standardpascal/iso7185.html#6.7.2.2%20Arithmetic%20operators).
3+
4+Note that this value changes based on the [[Compiler Mode|compiler mode]] and has nothing to do with the capabilities of the host or target machine.
5+
6+If you want to check the size of the address space, check **[[SizeOf|sizeof]]([[Pointer|pointer]])**.
7+
8+If you want to know if you are running on a CPU with [[64 bit|64-bit]] ALU, check whether the symbol **CPU64** is defined.
9+
10+The following example illustrates how these values relate:
11+
12+``` pascal
13+program maxvals;
14+ const width = 20;
15+begin
16+ writeln;
17+ writeln( 'these change depending on compiler mode:' );
18+ writeln( '----------------------------------------' );
19+ writeln( 'maxint: :', maxint : width );
20+ writeln( 'high( integer ) :', high( integer ) : width );
21+ writeln;
22+ writeln( 'constant, regardless of mode or target: ' );
23+ writeln( '----------------------------------------' );
24+ writeln( 'high( int32 ) :', high( int32 ) : width );
25+ writeln( 'high( int64 ) :', high( int64 ) : width );
26+ writeln;
27+ writeln( 'variable, depending on target cpu:' );
28+ writeln( '----------------------------------------' );
29+ writeln( 'sizeof( pointer ) :', sizeof( pointer ) : width );
30+ writeln;
31+ writeln( 'compile-time definitions:' );
32+ writeln( '----------------------------------------' );
33+ {$IFDEF cpu64} writeln( 'cpu64' ); {$ENDIF}
34+ {$IFDEF cpu32} writeln( 'cpu32' ); {$ENDIF}
35+ {$IFDEF cpu16} writeln( 'cpu16' ); {$ENDIF}
36+ writeln;
37+end.
38+```
39+
40+Compare the results with [[Mode TP|-Mtp]] vs [[Mode ObjFPC|-Mobjfpc]], for example:
41+
42+ fpc -Mtp maxvals.pas && ./maxvals
43+ fpc -Mobjfpc maxvals.pas && ./maxvals
44+
45+---
46+*From the Free Pascal wiki, page "MaxInt", as it stood on 2023-12-22 after a change by Alextpp, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history