The following sections describe the predefined macro names that are provided to assist in transporting code and performing simple tasks common to many programs.
The __DATE__ macro evaluates to a string literal specifying the date on which the compilation started. The date has the following format:
"Mmm dd yyyy"
The names of the months are the same as those generated by the
asctime
library function. The first d is a space if
dd is less than 10. For example:
printf("%s",_ _DATE_ _);
The value of this macro remains constant throughout the translation unit.
The __FILE__ macro evaluates to a string literal specifying the file specification of the current source file. For example:
printf("file %s", _ _FILE_ _);
The __LINE__ macro evaluates to a decimal constant specifying the number of the line in the source file containing the macro reference. For example:
printf("At line %d in file %s", _ _LINE_ _, _ _FILE_ _);
The __TIME__ macro evaluates to a string specifying the time that
the compilation started. The time has the following format (the same
as the asctime
function):
hh:mm:ss
For example:
printf("%s", _ _TIME_ _);
The value of this macro remains constant throughout the translation unit.
The __STDC__ macro evaluates to the integer constant 1, which indicates a conforming implementation.
The value of this macro remains constant throughout the translation
unit.
DEC C defines platform-specific macros that
can be used to identify the system on which the program is running.
These macros can assist in writing code that executes conditionally
depending on whether the program is running on a Digital system or
some other system, or one DEC C platform or another.
These macro definitions can be used to separate portable and
nonportable code in a C program by enclosing the nonportable code
in conditionally compiled sections.
They can also be used to conditionally compile sections of C
programs used on more than one operating system to take advantage of
system-specific features. See Section 8.2
for more information about using the conditional-compilation
preprocessor directives.
See your platform-specific DEC C
documentation for a list of the system-identification macros.
8.8.6 System-Identification Macros