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

插入注释时,必须确保每个以/*开头的注释都必须有相应的*/符号。如果您以/*开头注释但未关闭它,则编译器将抛出错误。

注意:块注释或多行注释必须放在/**/符号之间,而单行注释以//符号开头,并且有效直到行尾。

始终鼓励在程序中放置注释。程序员通常会避免添加注释的做法。但是,如果代码没有正确注释,他们有时会发现难以调试和修改代码。当开发以协作方式进行时,注释尤其重要。有效地使用注释可以帮助团队中的所有成员。

即使编译器会忽略注释,它们也应该含义清晰且简洁。每当代码需要修改时,都应该在注释中提及原因、时间戳和作者。

广告