共用方式為


#line 指示詞

預處理器指示詞,會將編譯器的內部儲存行號和檔案名設定為指定的值。

#line lineNumberfilename

參數

項目 描述
lineNumber
要設定的行號。 這可以是任何整數常數。 只要結果評估為正確的語法,就可以在前置處理標記上執行宏取代。
filename [選擇性]
要設定的檔案名。 檔案名可以是任何字元組合,而且必須以雙引號括住 (「) 。 如果省略此參數,則上一個檔案名會保持不變。

備註

編譯器會使用行號和檔案名來參考它在編譯期間發現的錯誤。 行號通常參考目前的輸入行,檔名則參考目前的輸入檔。 每次一行程式碼處理後,行號會遞增。 如果您變更行號和檔名,編譯器會忽略先前的值並以新的值繼續處理。 程式產生器通常會使用 #line 指示詞來造成錯誤訊息參考原始原始程式檔,而不是產生的程式。

翻譯工具使用行號和檔名,判斷預先定義巨集 __FILE__ 和 __LINE__ 的值。 您可以使用這些巨集,將自述性的錯誤訊息插入程式文字中。 __FILE__ 巨集展開為一個內容是檔名的字串,由雙引號 (" ") 括住。

範例

下列範例會將行號設定為 151,並將檔案名設定為 「copy.c」。

#line 151 "copy.c"

在下列範例中,如果指定的判斷提示不是 true,宏 ASSERT 會使用預先定義的宏__LINE__和__FILE__來列印來源檔案的錯誤訊息。

#define ASSERT(cond)

if( !(cond) )\
{printf( "assertion error line %d, file(%s)\n", \
__LINE__, __FILE__ );}

另請參閱

DirectX HLSL (預處理器指示詞)