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