Predefined preprocessor variables

Syntax:

    __LINE__
    __FILE__
    __DATE__
    __TIME__
    __cplusplus
    __STDC__

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.