//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 后的行號和檔案名
uj5u.com熱心網友回復:
通常用在預處理程式中比如 cpp, esqlc, proc
uj5u.com熱心網友回復:
#line用來指定新的行號,和編譯檔案名字。之后的行號,從#line定義的行號,為起始開始計算(這句話,配置代碼理解)
#include <stdio.h>
int main()
{
#line 20 "xxx.c"
printf("%d\n", __LINE__);
printf("%d\n",__LINE__);
return 0;
}
上述代碼輸出:
20
22
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/113270.html
標籤:應用程序開發區
下一篇:大佬們這是什么怎么個情況
