Preprocessor

FreeBASIC

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.
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.
#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.

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.
#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.