天天看點

C++ '__FILE__' and '__LINE__

Q: What are '__FILE__' and '__LINE__'?

A: '__FILE__' and '__LINE__' are predefined macros and part of the C/C++ standard. During preprocessing, they are replaced respectively by a constant string holding the current file name and by a integer representing the current line number.

There are other preprocessor variables including:

  • '__DATE__' -> a string literal of the form "Mmm dd yyyy"
  • '__TIME__' -> a string literal of the form "hh:mm:ss"
  • '__TIMESTAMP__' -> a string literal of the form "Mmm dd yyyy hh:mm:ss"
  • '__FUNCTION__' -> a string literal which contains the function name (this is part of C99, the new C standard and not all C++ compilers support it)