Node:Miscellaneous, Next:BP and Extended Pascal, Previous:Special Parameters, Up:Borland Pascal
program Foo (Input, Output); begin end.
In GNU Pascal, headline parameters are optional. If the headline is
omitted entirely, a warning is given unless you have specified
--borland-pascal
in the command line.
case
statements: In a case
statement, GNU Pascal
allows otherwise
(according to Extended Pascal) as an
alternative to else
:
program CaseOtherwiseDemo; var x: Integer; begin ReadLn (x); case x of 1: WriteLn ('one'); 2: WriteLn ('two'); otherwise WriteLn ('many') end end.
Note: In the absence of a case
or otherwise
branch,
missing cases labels cause an error in Extended Pascal (which goes
unnoticed in Borland Pascal). GPC does not give this error, but a
warning if the -Wswitch
option is given, however only for
enumeration types.
^M
as well as #13
are implemented into GNU Pascal.
Card
function for sets which counts
their elements. Unlike Borland Pascal, GNU Pascal does not limit
sets to the range 0 .. 255.
Borland Pascal:
function Max (x, y: Integer): Integer; inline ($58 / $59 / $3b / $c1 / $7f / $01 / $91);
GNU Pascal:
program InlineDemo; function Max (x, y: Integer): Integer; attribute (inline); begin if x > y then Max := x else Max := y end; begin WriteLn (Max (42, 17), ' ', Max (-4, -2)) end.
(Actually, a more general Max
function is already built in.)
This feature is not so important as it might seem because in optimization level 3 or higher (see GPC Options), GNU Pascal automatically inlines short procedures and functions.