C語言註釋詳解(兩種注釋方式)

2020-07-16 10:04:20
在編寫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