//test.c
#include <unistd.h>
#include <stdio.h>
int main()
{
#line 90 "digitmap.y"
printf("current line number %d ,current file %s\n", __LINE__, __FILE__);
return 0;
}
cc test.c
./a.out
运行结果 为 current line number 90 ,current file digitmap.y如果注释掉 //#line 90 "digitmap.y"
运行结果为
./a.out
current line number 6 ,current file test.c#line 90 "digitmap.y" 其实就表示宏替换的意思,将 __LINE__, __FILE__ 分别替换成 #lilne 后的行号和文件名
#include <unistd.h>
#include <stdio.h>
int main()
{
#line 90 "digitmap.y"
printf("current line number %d ,current file %s\n", __LINE__, __FILE__);
return 0;
}
cc test.c
./a.out
运行结果 为 current line number 90 ,current file digitmap.y如果注释掉 //#line 90 "digitmap.y"
运行结果为
./a.out
current line number 6 ,current file test.c#line 90 "digitmap.y" 其实就表示宏替换的意思,将 __LINE__, __FILE__ 分别替换成 #lilne 后的行号和文件名
比如 cpp, esqlc, proc
int main()
{#line 20 "xxx.c"
printf("%d\n", __LINE__);printf("%d\n",__LINE__);
return 0;
}
上述代码输出:
20
22