在編寫C語言原始碼時,應該多使用注釋,這樣有助於對程式碼的理解。在C語言中有兩種注釋方式:
-
一種是以
/*
開始、以*/
結束的塊注釋(block comment);
-
另一種是以
//
開始、以換行符結束的單行注釋(line comment)。
可以使用
/*
和
*/
分隔符來標註一行內的注釋,也可以標註多行的注釋。例如,在下列的函數原型中,省略號的意思是 open() 函數有第三個引數,它是可選引數。注釋解釋了這個可選引數的用法:
int open( const char *name, int mode, … /* int permissions */ );
可以使用
//
插入整行的注釋,或者將原始碼寫成兩列分欄的格式,程式在左列,注釋在右列:
const double pi = 3.1415926536; // pi是—個常數
在 C99 標準中,單行注釋正式加入C語言,但是大部分編譯器在 C99 之前就已經開始支援這種用法。有時候,其被稱作“C++風格”的註釋,但實際上,其源自於C的前身 BCPL。
在引號中,如果採用
/*
或
//
分隔一個字元常數或字串字面量(string literal),它們都不會被視為註釋的開始。例如,下面語句就沒有注釋:
printf("Comments in C begin with /* or //.n" );
前處理器僅通過檢查注釋的結束符來檢測注釋中的字元,因此,不能巢狀塊注釋。然而,可以使用
/*
和
*/
注釋包含單行注釋的原始碼:
/* 暫時注釋掉這兩行:
const double pi = 3.1415926536; // pi是一個常數
area = pi * r * r; // 計算面積
暫時注釋到此 */
如果想要注釋掉包含塊注釋的部分程式,可以使用條件預處理命令:
#if 0
const double pi = 3.1415926536; /* pi是一個常數 */
area = pi * r * r ; /* 計算面積 */
#endif
前處理器會把每個註釋都替換成一個空格。因此,
min/*max*/Value
變成兩個標記
min Value
。