GCC Predefined Macros

From Stack Overflow
Jump to: navigation, search

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++.

GCC-specific variables

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.