The standard predefined macros are specified by the C and/or C++ language standards, so they are available with all compilers that implement those standards. Older compilers may not provide all of them. Their names all start with double underscores.
__FILE__
This macro expands to the name of the current input file, in the form of a C string constant.
This is the path by which the preprocessor opened the file,
not the short name specified in #include or as
the input file name argument. For example, "/usr/local/include/myheader.h" is a possible expansion of this macro.