Share via


C 註解

「註解」是一個以正斜線和星號組合 (/*) 為開頭的字元序列,編譯器會將其視為一個空白字元或直接忽略。 註解可以包含可表示字元集的任何字元組合,其中包括新行字元,但不包括「結尾註解」分隔符號 (*/)。 批註可以佔用一行以上,但不能巢狀化。

註解可以出現在任何允許顯示空白字元的位置。 由於編譯器會將批註視為單一空白字元,因此您無法在權杖中包含批註。 編譯器會忽略註解中的字元。

使用註解來撰寫程式碼的文件。 下列範例為編譯器可接受的註解:

/* Comments can contain keywords such as
   for and while without generating errors. */

註解可以顯示在與程式碼陳述式同一行的位置:

printf( "Hello\n" );  /* Comments can go here */

您可以選擇在函式或程式模組之前使用描述性註解區塊:

/* MATHERR.C illustrates writing an error routine
* for math functions.
*/

因為批註不能包含巢狀批註,所以此範例會造成錯誤:

/* Comment out this routine for testing

   /* Open file */
    fh = _open( "myfile.c", _O_RDONLY );
    .
    .
    .
*/

會發生錯誤是因為編譯器將 */ 文字後的第一個 Open file 辨識為註解的結尾。 當它找到註解外的 */ 時,會嘗試處理其餘文字並產生錯誤。

雖然您在測試時可以使用註解來呈現數行程式碼,使其無法作用,不過若要達成此目的,使用前置處理器指示詞 #if#endif 和條件式編譯會更有用。 如需詳細資訊,請參閱《前置處理器參考》中的前置處理器指示詞

Microsoft 特定的

Microsoft 編譯器也支援使用兩個正斜線的單行註解 (//)。 這些批註無法延伸至第二行。

// This is a valid comment

開頭為兩個正斜線的批註 (//) 會由未在逸出字元前面加上的下一個分行符號終止。 在下一個範例中,分行符號前面會加上反斜線 (\) ,建立「逸出序列」。這個逸出序列會使編譯器將下一行視為上一行的一部分。 (如需詳細資訊,請參閱逸出序列)。

// my comment \
    i++;

因此,i++; 陳述式會標記為註解。

Microsoft C 預設會啟用 Microsoft 擴充功能。 使用 /Za 可停用這些擴充功能。

END Microsoft 特定

另請參閱

C 權杖