1.1 __FILE__
作用:表示当前源文件名,类型为字符串常量;
#include <stdio.h>
 int main()
 {
     printf("%s\n", __FILE__);
     return 0;
 }
   输出为:
# ./test
 test.c
 1.2 __LINE__
作用:代表当前程序行的行号,类型为十进制整数常量;
#include <stdio.h>
 int main()
 {
     printf("%d\n", __LINE__);
     printf("%d\n", __LINE__);
     return 0;
 }
 输出为:
# ./test
 5
 6
 1.3 #line
语法:#line 行号 [“文件名”]
作用:将行号和文件名更改为指定的行号和文件名;
#include <stdio.h>
 #line 100 "test-new.c" // 更改下一行的行号和源文件名
 int main()              // line 100
 {
     printf("%d\n", __LINE__); // line 102
     printf("%d\n", __LINE__); // line 103
     printf("%s\n", __FILE__);
     return 0;
 }
 输出为:
# ./test 
 102
 103
 test-new.c
 1.4 __func__ 和 __FUNCTION__
作用:代表当前函数的函数名,类型为字符串常量;
#include <stdio.h>
 int main()
 {
     printf("%s\n", __func__);
     printf("%s\n", __FUNCTION__);
     return 0;
 }
 输出为:
# ./test 
 main
 main
 1.5 __DATE__
作用:代表日期,形式为Mmm dd yyyy 的字符串常量;
#include <stdio.h>
 int main()
 {
     printf("%s\n", __DATE__);
     return 0;
 }
 输出为:
# ./test 
 Aug  9 2020
 1.6 __TIME__
作用:代表时间,hh:mm:ss 形式的字符串型常量;
#include <stdio.h>
int main()
 {
     printf("%s\n", __TIME__);
     return 0;
 }
 输出为:
# ./test
16:38:52