C 語言註釋



在 C 程式中使用註釋可以提高程式碼的可讀性。您必須在適當的位置用註釋穿插程式碼。就編譯器而言,註釋會被忽略。在 C 語言中,註釋是一行或多行文字,編譯器在構建機器碼時會跳過這些文字。

C 語言中的註釋在需要修改程式時(特別是由除最初編寫程式的人員以外的人員修改時)起著重要作用。程式設計師通常不重視添加註釋,但有效地使用註釋對於提高程式碼質量非常重要。

為什麼要在 C 程式設計中使用註釋?

任何程式語言,包括 C 語言,與英語等任何人類語言相比,都比較簡潔。它擁有的關鍵字數量要少得多,C 語言是其中最小的語言之一,只有 32 個關鍵字。因此,C 程式中的指令可能難以理解,特別是對於沒有程式設計背景的人來說。

C 語言語法也各不相同,而且很複雜。通常,程式設計師會嘗試新增複雜性來最佳化程式碼。但是,這使得程式碼難以理解。註釋提供了有用的解釋並傳達了使用特定方法背後的意圖

例如,考慮 C 語言中的?:運算子,它是if-else 語句的簡寫形式。

因此,不需要使用以下程式碼:

if (a % 2 == 0){
   printf("%d is Even\n", a);
} else {
   printf("%d is Odd\n", a);
}

可以使用以下語句:

(a % 2 == 0) ? printf("%d is Even\n", a) : printf("%d is Odd\n", a);

顯然,第二種方法比第一種方法更復雜。如果添加了有用的註釋,則可以更容易地理解所用語句的意圖和邏輯。

C 語言中註釋的型別

在 C 語言中,有兩種型別的註釋:

  • 單行註釋
  • 多行註釋

C 語言中的單行註釋

C99 標準的 C 編譯器中引入了 C++ 樣式的單行註釋。如果任何文字以//符號開頭,則該行的其餘部分將被視為註釋。

程式碼中雙斜槓或正斜槓[//]後面的文字將被視為單行註釋。C 編譯器在編譯期間會忽略//之後的所有文字。與多行或塊註釋不同,它不需要關閉。

C 語言單行註釋的語法

//comment text

//符號可以出現在任何位置。它表示//之後直到行尾的所有文字都是註釋。編輯器中的下一行又是編寫有效 C 語句的地方。

示例:C 語言中的單行註釋

請檢視以下程式,並觀察我們如何在主函式內部使用單行註釋:

/* Online C Compiler and Editor */
#include <stdio.h>
#include <math.h>

/*forward declaration of function*/
float area_of_square(float);

float area_of_square(float side){
   float area = pow(side,2);
   return area;
}

// main function - entire line is a comment
int main(){

   // variable declaration (this comment is after the C statement)
   float side = 5.50; 
     
   float area = area_of_square(side);   // calling a function
   printf ("Side = %5.2f Area = %5.2f", side, area);

   return 0;
}
輸出

執行此程式碼時,將產生以下輸出:

Side = 5.50 Area = 30.25

C 語言中的多行註釋

C 語言的早期版本(ANSI C)中,/**/符號之間的任何長度的文字都將被視為註釋。文字可以分佈在程式碼檔案中的多行上。您可以將其稱為多行註釋。一段連續的行將被視為註釋。

C 語言多行註釋的語法

多行註釋的通用結構如下:

/* The comment starts here
Line 1
Line 2
…..
…..
Comment ends here*/

例如:

/*
Example of a multi-line comment
program to print Hello World
using printf() function
*/

顯然,由於編譯器會忽略註釋,因此 C 語言的語法規則不適用於註釋文字。

註釋可以出現在程式的任何位置,例如頂部、程式碼之間或函式結構體宣告的開頭等。

示例:C 語言中的多行註釋

在此示例中,我們有一個多行註釋,解釋了給定程式碼中使用的特定使用者定義函式的作用:

/* program to calculate area of square */

/* headers */
#include <stdio.h>
#include <math.h>

/* forward declaration of function */
float area_of_square(float);


/* main function */
int main(){

   /* variable declaration */
   float side = 5.50;
   
   /* calling function */
   float area = area_of_square(side);
   printf("Side = %5.2f Area = %5.2f", side, area);

   return 0;
}

/* User-defined function to calculate
the area of square. It takes side as the argument 
and returns the area */

float area_of_square(float side){
   float area = pow(side, 2);
   return area;
}
輸出

執行程式碼時,將產生以下輸出:

Side = 5.50 Area = 30.25

插入註釋時,必須確保每個以/*開頭的註釋都必須有相應的*/符號。如果您以/*開頭註釋但未關閉它,則編譯器將丟擲錯誤。

注意:塊註釋或多行註釋必須放在/**/符號之間,而單行註釋以//符號開頭,並且有效直到行尾。

始終鼓勵在程式中放置註釋。程式設計師通常會避免添加註釋的做法。但是,如果程式碼沒有正確註釋,他們有時會發現難以除錯和修改程式碼。當開發以協作方式進行時,註釋尤其重要。有效地使用註釋可以幫助團隊中的所有成員。

即使編譯器會忽略註釋,它們也應該含義清晰且簡潔。每當程式碼需要修改時,都應該在註釋中提及原因、時間戳和作者。

廣告