Sign in Join
Wiki copytemporary

MaxInt: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

Title: MaxInt maxint

OldNewLine
1-**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).
2-
3-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.
4-
5-If you want to check the size of the address space, check **[[SizeOf|sizeof]]([[Pointer|pointer]])**.
6-
7-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.
8-
9-The following example illustrates how these values relate:
10-
11-``` pascal
12-program maxvals;
13- const width = 20;
14-begin
15- writeln;
16- writeln( 'these change depending on compiler mode:' );
17- writeln( '----------------------------------------' );
18- writeln( 'maxint: :', maxint : width );
19- writeln( 'high( integer ) :', high( integer ) : width );
20- writeln;
21- writeln( 'constant, regardless of mode or target: ' );
22- writeln( '----------------------------------------' );
23- writeln( 'high( int32 ) :', high( int32 ) : width );
24- writeln( 'high( int64 ) :', high( int64 ) : width );
25- writeln;
26- writeln( 'variable, depending on target cpu:' );
27- writeln( '----------------------------------------' );
28- writeln( 'sizeof( pointer ) :', sizeof( pointer ) : width );
29- writeln;
30- writeln( 'compile-time definitions:' );
31- writeln( '----------------------------------------' );
32- {$IFDEF cpu64} writeln( 'cpu64' ); {$ENDIF}
33- {$IFDEF cpu32} writeln( 'cpu32' ); {$ENDIF}
34- {$IFDEF cpu16} writeln( 'cpu16' ); {$ENDIF}
35- writeln;
36-end.
37-```
38-
39-Compare the results with [[Mode TP|-Mtp]] vs [[Mode ObjFPC|-Mobjfpc]], for example:
40-
41- fpc -Mtp maxvals.pas && ./maxvals
42- fpc -Mobjfpc maxvals.pas && ./maxvals
43-
44----
45-*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).*
1+#REDIRECT [[MaxInt]]

Back to history