Intrinsic Defines

FreeBASIC

Intrinsic Defines
 
Preprocessor symbols defined by the compiler.

Description

Intrinsic defines are set by the compiler and may be used as any other defined symbol. Intrinsic defines often convey information about the state of the compiler, either in general or at a specific point in the compilation process. Most intrinsic defines are associated with a value.

Platform Information
Defines that provide information on the system.
Version Information
Defines that provide information on the fbc compiler version being used.
Command-line switches
Defines that provide information with the command-line switches used with fbc.
Environment Information
Defines that provide information about the operating system environment.
Context-specific Information
Defines that provide context information about the compilation process.

Platform Information
__FB_WIN32__
Defined if compiling for Windows.
__FB_LINUX__
Defined if compiling for Linux.
__FB_DOS__
Defined if compiling for DOS.
__FB_CYGWIN__
Defined if compiling for Cygwin.
__FB_FREEBSD__
Defined if compiling for FreeBSD.
__FB_NETBSD__
Defined if compiling for NetBSD.
__FB_OPENBSD__
Defined if compiling for OpenBSD.
__FB_DARWIN__
Defined if compiling for Darwin.
__FB_XBOX__
Defined if compiling for Xbox.
__FB_BIGENDIAN__
Defined if compiling on a system using big-endian byte-order.
__Fb_Pcos__
Defined if compiling for a common PC OS (e.g. DOS, Windows, OS/2).
__Fb_Unix__
Defined if compiling for a Unix-like OS.
__Fb_64Bit__
Defined if compiling for a 64bit target.
__Fb_Arm__
Defined if compiling for the ARM architecture.

Version Information
__FB_VERSION__
Defined as a string literal of the compiler version.
__FB_VER_MAJOR__
Defined as an integral literal of the compiler major version number.
__FB_VER_MINOR__
Defined as an integral literal of the compiler minor version number.
__FB_VER_PATCH__
Defined as an integral literal of the compiler patch number.
__FB_MIN_VERSION__
Macro to check for a minimum compiler version.
__FB_BUILD_DATE__
Defined as a string literal of the compiler build date.
__FB_SIGNATURE__
Defined as a string literal of the compiler signature.

Command-line switches
__Fb_Asm__
Defined to either "intel" or "att" depending on -asm.
__Fb_Backend__
Defined to either "gas" or "gcc" depending on -gen.
__Fb_Gcc__
True (-1) if -gen gcc is used, false (0) otherwise.
__FB_MAIN__
Defined if compiling a module with an entry point.
__FB_DEBUG__
True (-1) if the "-g" switch was used, false (0) otherwise.
__FB_ERR__
Zero (0) if neither the "-e", "-ex" or "-exx" switches were used.
__Fb_Fpmode__
Defined as "fast" if compiling for fast SSE math, "precise" otherwise.
__Fb_Fpu__
Defined as "sse" if compiling for SSE floating point unit, or "x87" for normal x87 floating-point unit.
__FB_LANG__
Defined to a string literal of the "-lang" dialect used.
__FB_MT__
True (-1) if the "-mt" switch was used, false (0) otherwise.
__FB_OUT_DLL__
True (-1) in a module being compiled and linked into a shared library, false (0) otherwise.
__FB_OUT_EXE__
True (-1) in a module being compiled and linked into an executable, false (0) otherwise.
__FB_OUT_LIB__
True (-1) in a module being compiled and linked into a static library, zero (0) otherwise.
__FB_OUT_OBJ__
True (-1) in a module being compiled only, zero (0) otherwise.
__FB_SSE__
Defined if compiling for SSE floating point unit.
__Fb_Vectorize__
Defined as the level of automatic vectorization (0 to 2)
Environment Information
__FB_ARGC__
Defined as an integer literal of the number of command-line arguments passed to the program.
__FB_ARGV__
Defined as a ZString Ptr Ptr to the command line arguments passed to the program.
__DATE__
Defined as a string literal of the compilation date in "mm-dd-yyyy" format.
__Date_Iso__
Defined as a string literal of the compilation date in "yyyy-mm-dd" format.
__TIME__
Defined as a string literal of the compilation time.
__PATH__
Defined as a string literal of the absolute path of the module.

Context-specific Information
__FILE__ and __FILE_NQ__
Defined as the name of the module.
__FUNCTION__ and __FUNCTION_NQ__
Defined as the name of the procedure where it's used.
__LINE__
Defined as an integer literal of the line of the module where it's used.
__FB_OPTION_BYVAL__
True (-1) if parameters are declared by value by default, zero (0) otherwise.
__FB_OPTION_DYNAMIC__
True (-1) if all arrays are variable-length, zero (0) otherwise.
__FB_OPTION_ESCAPE__
True (-1) if string literals are processed for escape sequences, zero (0) otherwise.
__Fb_Option_Gosub__
True (-1) if gosub support is enabled, zero (0) otherwise.
__FB_OPTION_EXPLICIT__
True (-1) if variables and objects need to be explicitly declared, zero (0) otherwise.
__FB_OPTION_PRIVATE__
True (-1) if all procedures are private by default, zero (0) otherwise.