&
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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
