全运会女篮赛程,萨达姆卡扎菲本拉登,中国人寿我的e家
在test.c中写如下代码:
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("line:%d\n", __line__);
6 return 0;
7 }
使用gcc编译 gcc -o test test.c
执行 ./test
结果 line:5
__line__ 是通过什么方式知道自己在第5行呢?
使用命令 gcc -e test.c -o test.i 进行预处理
查看test.i的最后几行代码如下:
535 # 412 "/usr/include/stdio.h" 2 3 4
536 # 2 "test.c" 2
537
538 int main()
539 {
540 printf("line:%d\n", 5);
541 return 0;
542 }
由此可见:在预处理阶段,__line__ 会被替换成自己所在行的行号。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论