GCC Predefined Macros
Get a list of all predefined macros:
touch test.h; cpp -dM test.h
The following variables can vary by compiler, but generally work:
- The __LINE__ and __FILE__ variables represent the current line and current file being processed.
- The __DATE__ variable contains the current date, in the form month/day/year. This is the date that the file was compiled, not necessarily the current date.
- The __TIME__ variable represents the current time, in the form hour:minute:second. This is the time that the file was compiled, not necessarily the current time.
- The __cplusplus variable is only defined when compiling a C++ program. In some older compilers, this is also called c_plusplus.
- The __STDC__ variable is defined when compiling a C program, and may also be defined when compiling C++.
The following are GCC-specific variables. While they are not specifically preprocessor macros they are magic and can be used the same way:
- __func__ contains the bare name of the function
- __FUNCTION__ is another name for __func__
- The __PRETTY_FUNCTION__ contains the type signature of the function as well as its bare name.