Preprocessor
Commands that control the preprocessor.
Description
Preprocessor commands are sent to the compiler to control what gets compiled and how. They can be used to choose to compile one block of code rather than another for cross-platform compatibility, include headers or other source files, define small inline functions called macros, or alter how the compiler handles variables.
Conditional Compilation
Commands that allow for branches in compilation based on conditions.
Text Replacement
Commands that create text-replacement macros.
Feature-control Defines
User-defined symbols that affect how selected compiler features are parsed.
File Directives
Commands that indicate to the compiler how other files relate to the source file.
Control Directives
Commands that set compile options, control compilation, and report compile time information.
Metacommands
Commands that are kept for backward compatibility.

Conditional Compilation #if Compiles the following code block based on a condition. #ifdef Compiles the following code block if a symbol is defined. #ifndef Compiles the following code block if a symbol is not defined. #elseif Compiles the following code block if a condition is true and the previous conditions was false. #elseifdef Compiles the following code block if a symbol is defined and the previous conditions was false. #elseifndef Compiles the following code block if a symbol is not defined and the previous conditions was false. #else Compiles the following code block if previous conditions were false. #endif Signifies the end of a code block. defined Returns "-1" if a symbol is defined, otherwise "0". Text Replacement #define Creates a single-line text-replacement macro. #macro and #endmacro Creates a multi-line text-replacement macro. #undef Undefines a symbol. # Preprocessor Stringize Converts text into a string literal. ## Preprocessor Concatenate Concatenates two pieces of text. ! Escaped String Literal Indicates string literal immediately following must be processed for escape sequences. $ Non-Escaped String Literal Indicates string literal immediately following must not be processed for escape sequences. Feature-control Defines Fb_No_Gfxlib Allows selected graphics-library command words to be used as normal identifiers. Fb_No_Sfxlib Allows selected sound-library command words to be used as normal identifiers. | File Directives #include Inserts text from a file. #inclib Includes a library in the linking processes. #libpath Includes a path to search for libraries in the linking process. Control Directives #pragma Sets compiling options. #Pragma Reserve Reserves symbol name. #Cmdline Sets compiler command options from source. #lang Sets dialect from source. #print Outputs a messages to standard output while compiling. #error Outputs a messages to standard output and stops compilation. #assert Stops compilation with an error message if a given condition is false. #line Sets the current line number and file name. Metacommands '$Include Alternate form of the #include directive. '$Dynamic Alternate form of the Option Dynamic statement. '$Static Alternate form of the Option Static statement. '$Lang Alternate form of the #lang directive.

See also

- Intrinsic Defines