3.17 Defines Created by the Compiler

Besides defines from the C standards, the compiler creates the following #defines:

#define
Description
__SDCC
Always defined. Version number string (e.g. SDCC_3_2_0 for sdcc 3.2.0).
SDCC
OBSOLETE. WILL BE REMOVED IN THE FUTURE. CURRENTLY Only defined for the mcs51 backend (and only if –std-cXX is not used). This macro has been available since SDCC 2.5.6 and is the version number as an int (ex. 256). PLEASE USE OTHER VERSION MACROS INSTEAD!
__SDCC_mcs51 or __SDCC_ds390 or __SDCC_z80, etc.
depending on the model used (e.g.: -mds390). Older versions used SDCC_mcs51, etc instead.
__SDCC_STACK_AUTO
when —stack-auto option is used
__SDCC_MODEL_SMALL
when —model-small is used
__SDCC_MODEL_MEDIUM
when —model-medium is used
__SDCC_MODEL_LARGE
when —model-large is used
__SDCC_MODEL_HUGE
when —model-huge is used
__SDCC_USE_XSTACK
when —xstack option is used
__SDCC_STACK_TENBIT
when -mds390 is used
__SDCC_MODEL_FLAT24
when -mds390 is used
__SDCC_VERSION_MAJOR
Always defined. SDCC major version number. E.g. 3 for SDCC 3.5.0
__SDCC_VERSION_MINOR
Always defined. SDCC minor version number. E.g. 5 for SDCC 3.5.0
__SDCC_VERSION_PATCH
Always defined. SDCC patchlevel version number. E.g. 0 for SDCC 3.5.0
__SDCC_REVISION
Always defined. SDCC svn revision number. Older versions of sdcc used SDCC_REVISION instead.
SDCC_PARMS_IN_BANK1
when —parms-in-bank1 is used
__SDCC_ALL_CALLEE_SAVES
when —all-callee-saves is used
__SDCC_FLOAT_REENT
when —float-reent is used
__SDCC_INT_LONG_REENT
when —int-long-reent is used