- C 编程教程
- C - 首页
- C 语言基础
- C - 概述
- C - 特性
- C - 历史
- C - 环境设置
- C - 程序结构
- C - Hello World
- C - 编译过程
- C - 注释
- C - 词法单元
- C - 关键字
- C - 标识符
- C - 用户输入
- C - 基本语法
- C - 数据类型
- C - 变量
- C - 整数提升
- C - 类型转换
- C - 类型强制转换
- C - 布尔类型
- C 语言中的常量和字面量
- C - 常量
- C - 字面量
- C - 转义序列
- C - 格式说明符
- C 语言中的运算符
- C - 运算符
- C - 算术运算符
- C - 关系运算符
- C - 逻辑运算符
- C - 位运算符
- C - 赋值运算符
- C - 一元运算符
- C - 自增和自减运算符
- C - 三元运算符
- C - sizeof 运算符
- C - 运算符优先级
- C - 其他运算符
- C 语言中的决策
- C - 决策
- C - if 语句
- C - if...else 语句
- C - 嵌套 if 语句
- C - switch 语句
- C - 嵌套 switch 语句
- C 语言中的循环
- C - 循环
- C - while 循环
- C - for 循环
- C - do...while 循环
- C - 嵌套循环
- C - 无限循环
- C - break 语句
- C - continue 语句
- C - goto 语句
- C 语言中的函数
- C - 函数
- C - 主函数
- C - 按值传递函数
- C - 按引用传递函数
- C - 嵌套函数
- C - 可变参数函数
- C - 用户自定义函数
- C - 回调函数
- C - return 语句
- C - 递归
- C 语言中的作用域规则
- C - 作用域规则
- C - 静态变量
- C - 全局变量
- C 语言中的数组
- C - 数组
- C - 数组的特性
- C - 多维数组
- C - 将数组传递给函数
- C - 从函数返回数组
- C - 变长数组
- C 语言中的指针
- C - 指针
- C - 指针和数组
- C - 指针的应用
- C - 指针运算
- C - 指针数组
- C - 指向指针的指针
- C - 将指针传递给函数
- C - 从函数返回指针
- C - 函数指针
- C - 指向数组的指针
- C - 指向结构体的指针
- C - 指针链
- C - 指针与数组
- C - 字符指针和函数
- C - 空指针
- C - void 指针
- C - 野指针
- C - 解引用指针
- C - 近指针、远指针和巨指针
- C - 指针数组的初始化
- C - 指针与多维数组
- C 语言中的字符串
- C - 字符串
- C - 字符串数组
- C - 特殊字符
- C 语言中的结构体和联合体
- C - 结构体
- C - 结构体和函数
- C - 结构体数组
- C - 自引用结构体
- C - 查找表
- C - 点(.)运算符
- C - 枚举(或枚举类型)
- C - 结构体填充和打包
- C - 嵌套结构体
- C - 匿名结构体和联合体
- C - 联合体
- C - 位域
- C - typedef
- C 语言中的文件处理
- C - 输入和输出
- C - 文件 I/O (文件处理)
- C 预处理器
- C - 预处理器
- C - 编译指示
- C - 预处理器运算符
- C - 宏
- C - 头文件
- C 语言中的内存管理
- C - 内存管理
- C - 内存地址
- C - 存储类
- 其他主题
- C - 错误处理
- C - 可变参数
- C - 命令执行
- C - 数学函数
- C - static 关键字
- C - 随机数生成
- C - 命令行参数
- C 编程资源
- C - 问答
- C - 快速指南
- C - 速查表
- C - 有用资源
- C - 讨论
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
插入注释时,必须确保每个以/*开头的注释都必须有相应的*/符号。如果您以/*开头注释但未关闭它,则编译器将抛出错误。
注意:块注释或多行注释必须放在/*和*/符号之间,而单行注释以//符号开头,并且有效直到行尾。
始终鼓励在程序中放置注释。程序员通常会避免添加注释的做法。但是,如果代码没有正确注释,他们有时会发现难以调试和修改代码。当开发以协作方式进行时,注释尤其重要。有效地使用注释可以帮助团队中的所有成员。
即使编译器会忽略注释,它们也应该含义清晰且简洁。每当代码需要修改时,都应该在注释中提及原因、时间戳和作者。