GCC preprocessor predefined macro __FILE__
#include <stdio.h> int main(int argc, char *argv[]) { printf("hello world! %s\n", __FILE__); return 0; }
- 如果在源代码同目录编译,则执行结果为:
gcc main.c
./a.out
hello world main.c
- 如果不在源代码同目录编译,则执行结果为:
gcc ~/main.c
./a.out
hello world /home/xxxx/main.c
GCC没有提供strip full path的功能
GCC preprocessor documentation 与 GCC documentation是不同的文档, __FILE__, __LINE__等预处理器预定义的宏文档在标题为"The C preprocessor"的文档中可查阅