&
English · Français · Português · Suomi · Русский
&
In ASCII the character code decimal 38 (or $26) is defined to be & (pronounced “ampersand”).
Pascal
octal base
In Pascal the & denotes an octal base number.
program messageNo(input, output, stderr);
uses
baseUnix;
begin
// withdraw group write access to current terminal
// equivalent to invoking: mesg n
fpChmod('/dev/stdin', &0600);
end.In an octal base only the characters 0 through and including 7 are allowed. An optional sign is specified in front of the &.
As a passing remark, in a production program the number in the above example is better written as
fpChmod('/dev/stdin', S_IRUSR or S_IWUSR);since it is more meaningful than having a raw number. Pascal is a high-level language. Use this advantage. Write what you mean, not what in fact the computer does.
Note: Octal number literals are not supported in {$mode Delphi} and {$mode TP}.
identifier escape
FreePascal retroactively declared some new reserved words. In order of being capable of compiling old code with an up-to-date compiler version, which might fail due to those new reserved words, FPC declared the & as an escape character. Thus, without refactoring the code but escaping, i.e. prepending an & to the identifier, the compiler accepts the actual reserved word as a valid identifier. New code though shall come up with different identifier names, without utilizing this feature.
Lazarus
In Lazarus the & is used to
- indicate shortcut keys in TMenuItem
From the Free Pascal wiki, page "&", as it stood on 2022-08-06 after a change by Kai Burghardt, 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.