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)
FAQ contributed by: [Kevin Hall] [Axter]