C语言中注释与注意事项的深入讲解
C语言注释简介:
注释应该出现在三种位置
- 文件头部
- 函数头部
- 函数体内的和代码混在一起的注释
对于文件头部的注释至少列出:
- 版权声明、版本号、文件创建日期、作者、内容/功能、与其他文件的关系、修改日志等。
函数头部注释要求至少列出:
- 函数功能、输入/输出参数、返回值、调用/被调用关系等。
C语言注释实例
注释在预编译阶段就会被删除掉,但是这里的删除并不是字面意义的删除,而是被替换,注释被替换,本质是替换成空格。
以下面的代码为例:
#include <stdio.h> int main() { int /* */ i; //正确 char *s = "abcdefgh //hijklmn"; //正确 //Is it a\ valid comment? //正确 in/* */t j; //报错 return 0; }
由于被替换成了空格,所以in t j这句话是无法编译的。
如果是C语言风格的注释出现了嵌套,则/*总是与离它最近的*/匹配,第二个/*并不会被认为是注释符号,因此第一个/*与第一个*/匹配,代码会剩下一个*/:
注释的一些注意事项
- 注释应当准确、易懂,反之有二义性。错误的注释容易产生误导,不利于代码维护。
- 边写代码边修改注释,修改代码的同时要修改对应的注释,保证注释和代码的一致性。不再有用的注释要及时删除。
- 注释是对代码的“提示”,所以注释应当简单明了,因为注释太多会让人眼花缭乱。
- 对于全局数据(全局变量、常量定义等)必须要加注释。注释清楚定义全局数据的目的。
- 注释的位置应该与被描述的代码相邻,可以与语句在同一行,也可以在语句的上一行,但不能在语句的下一行,因为这样不符合人的阅读习惯。
- 当代码比较长,特别是有多重嵌套时,应当在一些段落结束时加注释,便于阅读。
- 注释的缩进要与代码的缩进一致,这样代码会更美观,可读性强。
- 注释代码段时应当注重“为何做”而不是“怎么做”,要说明这段代码的操作意图。
- 数值的单位一定要注释。
- 对变量的范围给出注释,特别是参数。
- 对一系列的数字编号给出注释,尤其是在编写底层驱动的程序。
- 避免在一行代码或表达式的中间插入注释。
- 复杂的函数中,在分支语句、循环语句结束之后需要加注释,方便区分各分支或循环体。
总结
到此这篇关于C语言中注释与注意事项的文章就介绍到这了,更多相关C语言注释与注意事项内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
浅谈C语言中的注释风格小结
C语言中常用的注释风格有两种,一种是通过如下模式进行一段代码的注释: /* comment*/ 另一种是单行注释符号: // comment 学生时代的注释我一般是选用后者,那时候编码量十分有限,即使是简单的小段落注释使用的IDE也支持批量添加单行注释符.而在编码之中,简单的单行注释进行注释的时候键盘的操作更为简单一点. 不过,工作之后接触了相应的编码规范之后,C语言的注释我基本上放弃了单行注释的方法,最多仅仅在调试的时候做简单的使用. 其实,单行注释是从C++中借鉴来的,算是C++风格的注释方
-
C语言入门篇--注释,关键字typedef及转义字符详解
目录 注释 1.注释意义 2.两种注释风格 2.1 C语言注释风格 2.2 C++注释风格 关键字typedef 1.注意 2.用法 语法结构 转义字符 1.转义字符及其含义 2.字面 转 特殊 3.特殊 转 字面 注释 1.注释意义 (1)代码中有不需要的代码可以直接删除,也可以注释掉. (2)有些代码比较难懂可以注释一下. 2.两种注释风格 2.1 C语言注释风格 /*xxxxxx*/ 一次可以注释一行或多行,但不能嵌套注释. eg: #include <stdio.h> int main
-
实现去除c语言注释的小工具
去除C代码中的注释,1. 单行注释//:2. 多行注释/**/:3. 单行注释以"\"结尾则下一行也为注释:4. 字符串中的注释不处理.说是C语言,但其实所有C语系的都可以,比如Java. 小工具:去除C语言注释 复制代码 代码如下: #include <stdio.h> int main(int argc, char* argv[]) { enum { literal, single, multiple, string } mode = li
-
C语言关于注释的知识点总结
在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解.在C语言中有两种注释方式: 1.一种是以/*开始.以*/结束的块注释(block comment): 2.另一种是以//开始.以换行符结束的单行注释(line comment). 可以使用/*和*/分隔符来标注一行内的注释,也可以标注多行的注释.例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数.注释解释了这个可选参数的用法: int open( const char *name, int mode
-
c语言的注释定界符详解
c语言的注释定界符是什么 1.最早期的C语言注释是:/* */ 2.后来又增加的行注释:// 其中/**/是多行注释,//是单行注释. 需要注意的是:C 语言的注释并不是可以出现在C 语言代码的任何地方. 比如下面的注释就是错误的: in/*-*/t I; 因为编译器会将注释替换成空格,替换后的语句并不是c语句,所以会出错. 知识点补充: C语言有两种注释: 1.单行注释: 语法://注释的内容 功能://符号右边的一行内容被编译器忽略(按了回车才算换行) 快捷键:Command + /
-
C语言中注释与注意事项的深入讲解
C语言注释简介: 注释应该出现在三种位置 文件头部 函数头部 函数体内的和代码混在一起的注释 对于文件头部的注释至少列出: 版权声明.版本号.文件创建日期.作者.内容/功能.与其他文件的关系.修改日志等. 函数头部注释要求至少列出: 函数功能.输入/输出参数.返回值.调用/被调用关系等. C语言注释实例 注释在预编译阶段就会被删除掉,但是这里的删除并不是字面意义的删除,而是被替换,注释被替换,本质是替换成空格. 以下面的代码为例: #include <stdio.h> int main() {
-
C语言中结构体的内存对齐规则讲解
目录 1.结构体的内存对齐规则 2.例子 3.为什么存在内存对齐 4.如何修改默认对齐数 1.结构体的内存对齐规则 1.第一个成员在与结构体变量偏移量为0的地址处. 2.其他成员变量都放在对齐数(成员的大小和默认对齐数的较小值)的整数倍的地址处. 对齐数=编译器默认的一个对齐数与该成员大小的较小值.(VS中默认的对齐数是8) 3.结构体总大小为最大对齐数(每个成员变量都有一个对齐数 )的整数倍. 4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最
-
C语言中的字符(char)详细讲解
1.字符型(char)简介 字符型(char)用于储存字符(character),如英文字母或标点. 严格来说,char 其实也是整数类型(integer type),因为 char 类型储存的实际上是整数,而不是字符. 计算机使用特定的整数编码来表示特定的字符. 2. 声明字符型变量 3. 字符常量与初始化 实例: 用 char 类型来专门表示一个字符,例如: char a='1'; char b='$'; char c='X'; char d=' '; // 空格也是一个字符 char e=
-
C语言中输入输出流与缓冲区的深入讲解
前言 缓冲区 又称为缓存,它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区. 缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区. 原理介绍: 当调用输入函数scanf()时,输入函数会将我们输入的数字输入到输入缓冲区, 而当我们的输入缓冲区有内容时,再次输入将不会被执行, 而是直接跳过执行,将输入缓冲区的内容赋给变量; 1.为什么要引入缓冲区 例如,我们从磁盘里取信息,我们先把读出的数据放在缓
-
浅谈c语言中转义字符的用法及注意事项
c语言中的转义字符: \a 响铃符 \b 退格 \f 换页符 \n 换行符 \r 回车符(回到该行的首位置) \v 纵向制表符 \\ 反斜杠 \? 问号(?经vs10测试可以直接打印) \"(\') 双引号(单引号) \ooo 八进制数(ooo表示一个用8进制数表示出来的对应ANSII代码对应出字符,用此方法可以表示出所有ASCII字符.不过测试发现打不出%号,存疑!) \xhh 十六进制数(功能同八进制数,用hh表示一个十六进制数,如\x20表示空格) 注:使用转义字符的退格符,换行符,回车符
-
Go语言中切片使用的注意事项小结
前言 Go 语言中的slice类型可以理解为是数组array类型的描述符,包含了三个因素: 指向底层数组的指针 slice目前使用到的底层数组的元素个数,即长度 底层数组的最大长度,即容量 因此当我们定义一个切片变量,s := make([]int, 5, 10),即为指向了一个最大长度为10的底层数组,目前切片s使用到的长度为5. 在使用切片的时候,有几个注意事项,下面来一起看看吧. 使用append 先看一个例子: // 创建一个整型切片 // 其长度和容量都是 5 个元素 slice :=
-
.NET中方法的注意事项总结
本文较为详细的总结了.NET中方法的注意事项.分享给大家供大家参考.具体分析如下: 1. 方法中return 会终止整个方法段. 而break只能终止当前循环. 2. 方法就是一对可用代码的复用. a . 对于可重用的代码,在vs中选中,右键 重构 提取方法.即可自动封装成一个方法. b . 编程中,当我们调用的一个未定义的方法. Ctrl + . 然后Enter.会自动生成相应的方法. 3. 对于方法返回值,如果定义了返回值,方法中必须有对应的return. 没有返回值得方法可以用void
-
C语言中隐藏结构体的细节
我们都知道,在C语言中,结构体中的字段都是可以访问的.或者说,在C++ 中,类和结构体的主要区别就是类中成员变量默认为private,而结构体中默认为public.结构体的这一个特性,导致结构体中封装的数据,实际上并没有封装,外界都可以访问结构体重的字段. C++中我们尚可用类来替代结构体,但是,C语言中是没有类的,只能用结构体,但很多时候,我们需要隐藏结构体的字段,不让外界直接访问,而是通过我们写的函数进行间接访问,这样就提高了程序的封装性. 实现方法,简单来说,就是,结构体定义时,要定义在.
-
简单讲解C语言中宏的定义与使用
宏定义是预编译功能的一种, 预编译又称为预处理, 是为编译做的预备工作的阶段.处理#开头的指令, 比如拷贝 #include 包含的文件代码,#define宏定义的替换,条件编译等. 使用宏定义的好处:使用宏定义的好处:可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改.例如 π 这个常量,我们有时候会在程序的多个地方使用,如果每次使用都重新定义,一来比较麻烦,二来容易出错,所以我们可以把 π 做成宏定义来使用. 语法说明: (1)宏名一般用大写 (2)使用宏可提高程序的通用性
随机推荐
- Go语言文件操作的方法
- js实现符合国情的日期插件详解
- Jmail组件发送邮件之绝对能用的函数
- CSS网页布局入门教程6:左列固定,右列宽度自适应
- expect自动检测并重启另外一台服务器上的程序代码
- oracle中schema指的是什么意思
- php实现把url转换迅雷thunder资源下载地址的方法
- Asp下实现限制IP访问的程序代码
- ASP充分利用Err.Description
- Mysql5.5 InnoDB存储引擎配置和优化
- Android 监听软键盘状态的实例详解
- ajax提交加载进度条示例代码
- Java中 URL实现断点下载
- Java汉字转成汉语拼音工具类
- Java 对称加密几种算法分别实现
- Android Studio如何修改字体的大小
- 快速入门Java中的Lambda表达式
- 详解C++编程中的条件判断语句if-else与switch的用法
- C++编程中的或||、与&&、非!逻辑运算符基本用法整理
- Android控件之SeekBar的用法总结