Technical data
Predefined Macros [7]
Predefined macros can be divided into the following categories:
• Macros required by the C and C++ standards
• Macros based on the host machine
• Macros based on the target machine
• Macros based on the compiler
Predefined macros provide information about the compilation environment. In
the subsections that follow, only those macros that begin with the underscore
(_) character are defined when running in strict-conformance mode (see the
-h conform command line option in Section 2.4.2, page 9).
Note: Any of the predefined macros except those required by the standard (see
Section 7.1, page 117) can be undefined by using the -U command line option;
they can also be redefined by using the -D command line option.
A large set of macros is also defined in the standard header files. These macros
are described in the UNICOS System Libraries Reference Manual.
7.1 Macros Required by the C and C++ Standards
The following macros are required by the C and C++ standards:
M
acro Description
__TIME__ Time of translation of the source file.
__DATE__ Date of translation of the source file.
__LINE__ Line number of the current line in your source file.
__FILE__ Name of the source file being compiled.
__STDC__ Defined as the decimal constant 1 if compilation is
in strict conformance mode; defined as the decimal
constant 2 if the compilation is in extended mode.
This macro is defined for Cray Standard C/C++
compilations.
__cplusplus Defined as 1 when compiling Cray Standard
C++ code and undefined when compiling Cray
Standard C code. The __cplusplus macro is
S–2179–36 117










