Difference between revisions of "false and true"
From Lazarus wiki
Jump to navigationJump to search (True and False ar NOT reserved words in fpc.) |
|||
Line 5: | Line 5: | ||
These constant values must be predefined by the compiler as there is no way to define them in terms of anything else. | These constant values must be predefined by the compiler as there is no way to define them in terms of anything else. | ||
− | |||
== internal value == | == internal value == | ||
Line 36: | Line 35: | ||
[[Category:Code]] | [[Category:Code]] | ||
[[Category:Pascal]] | [[Category:Pascal]] | ||
− |
Revision as of 20:06, 4 May 2018
The constants false
and true
are used to define the false and true conditions of a boolean
variable.
They are manifest constants that are defined as part of the standard data types the compiler initially knows about.
These constant values must be predefined by the compiler as there is no way to define them in terms of anything else.
internal value
program falseDemo(input, output, stderr);
uses
typInfo;
begin
writeLn(false); // prints FALSE
// enumerative actions ------------------------------------------
writeLn(ord(false)); // prints 0
writeLn(succ(false)); // prints TRUE
// next two statements generate out-of-range compile-time warnings
writeLn(pred(false)); // prints TRUE
writeLn(succ(succ(false))); // prints TRUE
// data type ----------------------------------------------------
writeLn(sizeOf(false)); // prints 1
writeLn(bitSizeOf(false)); // prints 8
writeLn(PTypeInfo(typeInfo(false))^.kind); // prints tkBool
writeLn(PTypeInfo(typeInfo(false))^.name); // prints Boolean
end.
When typecasting or interpreting any numeric value as a boolean value, it is important to know, that any non-zero value means true
whilst only 0
(zero) is false
.