Smart Device Development 
Pre-defined Macros 

The device compilers recognize seven predefined ANSI C macros and the Microsoft C++ implementation provides several more.

These macros take no arguments and cannot be redefined. Their value, except for __LINE__ and __FILE__, must be constant throughout compilation.

The following table provides additional information about predefined macros, some of which are defined with multiple values.

Macro Description

__DATE__

The compilation date of the current source file.

The date is a string literal of the form Mmm dd yyyy.

__FILE__

The name of the current source file. __FILE__ expands to a string surrounded by double quotation marks.

__FUNCTION__

Valid only within a function and returns the undecorated name of the enclosing function (as a string).

__FUNCTION__ is not expanded if you use /EP (Preprocess to stdout Without #line Directives) or /P (Preprocess to a File) compiler options.

__LINE__

The line number in the current source file.

The line number is a decimal integer constant. It can be altered with a #line directive.

__STDC__

Indicates full conformance with the ANSI C standard.

Defined as the integer constant 1 only if the /Za, /Ze (Disable Language Extensions) compiler option is given and you are not compiling C++ code; otherwise is undefined.

__TIME__

The most recent compilation time of the current source file.

The time is a string literal of the form hh:mm:ss.

__TIMESTAMP__

The date and time of the last modification of the current source file, expressed as a string literal in the form Ddd Mmm Date hh:mm:ss yyyy, where Ddd is the abbreviated day of the week and Date is an integer from 1 to 31.

Microsoft-specific Macros

The following table shows additional predefined macros that are Microsoft-specific.

_CHAR_UNSIGNED

Default char type is unsigned. Defined when /J (Default char Type Is unsigned) is specified.
__cplusplus

Defined for C++ programs only.
_CPPRTTI

Defined for code compiled with /GR (Enable Run-Time Type Information).
_CPPUNWIND

Defined for code compiled with /GX (Enable Exception Handling).
_MFC_VER

Defines the MFC version. Defined as 0x0600 for Microsoft Foundation Class Library 6.0 or later. Always defined.
_MSC_EXTENSIONS

This macro is defined when compiling with the /Za, /Ze (Disable Language Extensions) compiler option (the default). Its value, when defined, is 1.
_MSC_VER

Defines the compiler version. Defined as 1200 for Microsoft Visual C++ 6.0 or later. Always defined.
_WIN32

Defined for applications for Win32. Always defined.
See Also

Other Resources

Differences Between Desktop and Device Compilers

Tags :


Page view tracker