Predefined Macros
The translator predefines several macro names.
The macro __DATE__ expands to a string literal that gives the date you invoked the translator. Its format is "Mmm dd yyyy". The month name Mmm is the same as for dates generated by the library function asctime. The day part dd ranges from " 1" to "31" (a leading 0 becomes a space).
The macro __FILE__ expands to a string literal that gives the remembered filename of the current source file. You can alter the remembered filename by writing a line directive.
The macro __LINE__ expands to a decimal integer constant that gives the remembered line number within the current source file. You can alter the remembered line number by writing a line directive.
The macro __STDC__ expands to the decimal integer constant 1. The translator should provide another value (or leave the macro undefined) when you invoke it for other than a Standard C environment. For example, you can write:
#if __STDC__ != 1
#error NOT a Standard C environment
#endif
The macro __STDC_VERSION__ expands to the decimal integer constant 199409L. The translator should provide another value (or leave the macro undefined) when you invoke it for other than a Standard C environment that incorporates Amendment 1.
The macro __TIME__ expands to a string literal that gives the time you invoked the translator. Its format is "hh:mm:ss", which is the same as for times generated by the library function asctime.