1 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先你要知道__FILE__和__LINE__這兩個(gè)宏.
是編譯器加上去的,默認(rèn)的__FILE__是const char*類(lèi)型,即常量字符串,記錄了源文件的名稱(chēng).
__LINE__是源文件中,引用了這個(gè)宏的行,它的行號(hào).
你可以試試:
cout << __LINE__ << endl;
cout << __LINE__ << endl;
兩個(gè)行,連續(xù)輸出兩個(gè)__LINE__,那么第二個(gè)輸出的值是第一個(gè)的值+1..
#line 200 "I THANK YOU"告訴編譯器預(yù)處理時(shí)將文件名定為"I THANK YOU",
并將#line 200 "I THANK YOU"這一行定為第200行,后面的行就從201開(kāi)始.
所以#line 200 "I THANK YOU"只是改了編譯器的兩個(gè)常量,并不是真正的修改文件名.
這兩個(gè)宏主要用于調(diào)試,出錯(cuò)的時(shí)候可以找到是哪個(gè)文件,哪一行.
比如
char buffer[256];
sprintf(buffer,"%s(%d):debug test only ...",__FILE__,__LINE__);
OutputDebugString(buffer);
運(yùn)行完之后你看VC的output窗口里是不是有這個(gè)輸出的消息,雙擊它....
- 1 回答
- 0 關(guān)注
- 1116 瀏覽
添加回答
舉報(bào)