1、C语言程序注释
5、c语言注释怎么写
7、给c语言加注释
C语言编程规范-注释
规则:
1:一般情况下,源程序有效注释量必须在20%以上。
说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。
2:说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。
示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。
Copyright (C), 1988-1999, Tech. Co., Ltd.
File name: // 文件名
Author:
Version:
Date: // 作者、版本及完成日期
Description: // 用于详细说明此程序文件完成的主要功能,与其他模块
// 或函数的接口,输出值、取值范围、含义及参数间的控
// 制、顺序、独立或依赖等关系
Others: // 其它内容的说明
Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明
1. ....
History: // 修改历史记录列表,每条修改记录应包括修改日期、修改
// 者及修改内容简述
1. Date:
Author:
Modification:
2. ...
3:源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。
示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。
Copyright (C), 1988-1999, Tech. Co., Ltd.
FileName: test.cpp
Author:
Version :
Date:
Description: // 模块描述
Version: // 版本信息
Function List: // 主要函数及其功能
1. -------
History: // 历史修改记录
author time version desc
David 96/10/12 1.0 build this moudle
说明:Description一项描述本文件的内容、功能、内部各部分之间的关系及本文件与其它文件关系等。History是修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述。
4:函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。
示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。
Function: // 函数名称
Description: // 函数功能、性能等的描述
Calls: // 被本函数调用的函数清单
Called By: // 调用本函数的函数清单
Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)
Input: // 输入参数说明,包括每个参数的作
// 用、取值说明及参数间关系。
Output: // 对输出参数的说明。
Return: // 函数返回值的说明
Others: // 其它说明
5:边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
6:注释的内容要清楚、明了,含义准确,防止注释二义性。
说明:错误的注释不但无益反而有害。
7:避免在注释中使用缩写,特别是非常用缩写。
说明:在使用缩写时或之前,应对缩写进行必要的说明。
8:注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。
示例:如下例子不符合规范。
例1:
/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
例2:
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
/* get replicate sub system index and net indicator */
应如下书写
/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
9:对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。
示例:
/* active statistic task number */
#define MAX_ACT_TASK_NUMBER 1000
#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */
10:数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。
示例:可按如下形式说明枚举/数据/联合结构。
/* sccp interface with sccp user primitive message name */
enum SCCP_USER_PRIMITIVE
N_UNITDATA_IND, /* sccp notify sccp user unit data come */
N_NOTICE_IND, /* sccp notify user the No.7 network can not */
/* tran *** ission this message */
N_UNITDATA_REQ, /* sccp user's unit data tran *** ission request*/
11:全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。
示例:
/* The ErrorCode when SCCP translate */
/* Global Title failure, as follows */ // 变量作用、含义
/* 0 - SUCCESS 1 - GT Table error */
/* 2 - GT error Others - no use */ // 变量取值范围
/* only function SCCPTranslate() in */
/* this modual can modify it, and other */
/* module can visit it through call */
/* the function GetGTTransErrorCode() */ // 使用 ***
BYTE g_GTTranErrorCode;
12:注释与所描述内容进行同样的缩排。
说明:可使程序排版整齐,并方便注释的阅读与理解。
示例:如下例子,排版不整齐,阅读稍感不方便。
void example_fun( void )
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
应改为如下布局。
void example_fun( void )
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
13:将注释与其上面的代码用空行隔开。
示例:如下例子,显得代码过于紧凑。
/* code one comments */
program code one
/* code two comments */
program code two
应如下书写
/* code one comments */
program code one
/* code two comments */
program code two
14:对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
说明:这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好的理解程序,有时甚至优于看设计文档。
15:对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。
说明:这样比较清楚程序编写者的意图,有效防止无故遗漏break语句。
示例(注意斜体加粗部分):
case CMD_UP:
ProcessUp();
break;
case CMD_DOWN:
ProcessDown();
break;
case CMD_FWD:
ProcessFwd();
if (...)
break;
else
ProcessCFW_B(); // now jump into case CMD_A
case CMD_A:
ProcessA();
break;
case CMD_B:
ProcessB();
break;
case CMD_C:
ProcessC();
break;
case CMD_D:
ProcessD();
break;
建议:
1:避免在一行代码或表达式的中间插入注释。
说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。
2:通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。
说明:清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释。
3:在代码的功能、意图层次上进行注释,提供有用、额外的信息。
说明:注释的目的是解释代码的目的、功能和采用的 *** ,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。
示例:如下注释意义不大。
/* if receive_flag is TRUE */
if (receive_flag)
而如下的注释则给出了额外有用的信息。
/* if mtp receive a message from links */
if (receive_flag)
4:在程序块的结束行右方加注释标记,以表明某程序块的结束。
说明:当代码段较长,特别是多重嵌套时,这样做可以使代码更清晰,更便于阅读。
示例:参见如下例子。
if (...)
// program code
while (index MAX_INDEX)
// program code
} /* end of while (index MAX_INDEX) */ // 指明该条while语句结束
} /* end of if (...)*/ // 指明是哪条if语句结束
5:注释格式尽量统一,建议使用"/* …… */"。
6:注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。
说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。
不知道您使用的是什么开发工具,如果是Visual Stdio的话
CTRL + SHIFT + B
生成解决方案
CTRL + F7
生成编译
CTRL + O
打开文件
CTRL + SHIFT + O
打开项目
CTRL + SHIFT + C
显示类视图窗口
F4
显示属性窗口
SHIFT + F4
显示项目属性窗口
CTRL + SHIFT + E
显示资源视图
F12
转到定义
CTRL + F12
转到声明
CTRL + ALT + J
对象浏览
CTRL + ALT + F1
帮助目录
CTRL + F1
动态帮助
F1
帮助
SHIFT + F1
当前窗口帮助
CTRL + ALT + F3
帮助-搜索
SHIFT + ALT + ENTER
全屏显示
CTRL + -
向后定位
CTRL + SHIFT + -
向前定位
CTRL + F4
关闭文档窗口
CTRL + PAGE DOWN
光标定位到窗口上方
CTRL + PAGE UP
光标定位到窗口下方
CTRL + F6
CTRL + TAB
下一个文档窗口
CTRL + SHIFT + F6
CTRL + SHIFT + TAB
上一个文档窗口
ALT + F6
下一个面板窗口
CTRL + K, CTRL + L
取消remark
CTRL + K, CTRL + C
注释选择的代码
CTRL + K, CTRL + U
取消对选择代码的注释
CTRL + M, CTRL + O
折叠代码定义
CTRL + M, CTRL + L
展开代码定义
CTRL + DELETE
删除至词尾
CTRL + BACKSPACE
删除至词头
SHIFT + TAB
取消制表符
CTRL + U
转小写
CTRL + SHIFT + U
转大写
CTRL + SHIFT + END
选择至文档末尾
CTRL + SHIFT + HOME
选择至文档末尾开始
SHIFT + END
选择至行尾
SHIFT + HOME
选择至行开始处
SHIFT + ALT + END
垂直选择到最后尾
SHIFT + ALT + HOME
垂直选择到最前面
CTRL + A
全选
CTRL + W
选择当前单词
CTRL + SHIFT + PAGE UP
选择至本页前面
CTRL + SHIFT + PAGE DOWN
选择至本页后面
CTRL + END
文档定位到最后
CTRL + HOME
文档定位到最前
CTRL + G
转到…
CTRL + K, CTRL + P
上一个标签
CTRL + K, CTRL + N
下一个标签
ALT + F10
调试-ApplyCodeChanges
CTRL + ALT+ Break
停止调试
CTRL + SHIFT + F9
取消所有断点
CTRL + F9
允许中断
CTRL + SHIFT + F5
调试-重新开始
F5
运行调试
CTRL + F5
运行不调试
F10
跨过程序执行
F11
单步逐句执行
CTRL + J
列出成员
CTRL + PAGE DOWN
下一个视图
CTRL + B
格式-粗体
CTRL + SHIFT + T
格式-文字缩进
一般来讲有两来种:
一是单行注释:直接在该行需要注释的地方加上"//"就行了。例如:
"int
a,b;//这是一个注释自行"。那么,"//"后面百的部分"这是一个注释行"就被注度释掉了,不起作用,但是"//"前面的“int
a,b;"不受影响。
另外还有一种是多行问同时注答释:
int
a,b;
int
c,d;
其中"/*"和"*/"起限定范围的作用,该范围内的语句都会被注释掉,将不再起作用。当然,多行注释也是可以用来单行注释的
两种,单行注释和成对注释。
单行注释以双斜线(//)开头。同一行中斜线右侧的所有内容都是注释,会被编译器略过。
另一个分隔符是注释符号对(/* */)。
C语言有两种注释格式,分别是:
单行注释
int x; // 这是一条行注释信息
多行注释
int x;
/* 这是一个
多行
注释
答:在用C语言编程时,常用的注释方式有如下几种:
(1)单行注释 //…
(2)多行注释 /*…*/
(3)条件编译注释 #if 0…#endif
拓展资料:
对于(1),注释只能显示在一行内,通常出现在一条语句的右边或者上方,对于注释符”//”,一个注释里只要有多余2个’/’都可以。
对于(2),”/*…*/”不能嵌套使用,正如”if…else”中的”else”总是和隔它最近的”if”配对一样,”/*”总是和离它最近的”*/”相配对。
针对(1)和(2)各自的缺陷,资深的程序员提出如(3)所示的注释,该注释的好处是能注释大块的程序,并且没有嵌套的限制,也就是说在”#if 0…#endif”的”…”处可以有”//”或”/*…*/”这样的注释。
在编写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。
所有教程
外国养猪疑息网,售菜网、衣分 三 七阁下 ,有无比拟 孬的及时 农产物 .追求 能猜测 农产物 价钱 的硬件或者网站,最佳有价钱 涨跌预警、拼多多,尔看过,食物 疑息平安 网等皆否以查询的到。 价钱 走势:五年夜 类农产物 价钱 疑息日、各个处所 的也有,外国国度 统计局官网上否以看到,次要是念相识...
重百、发起 ,地津:友情 商乡,新世纪。 金融街,念购心红送人dior然则 没有 晓得博柜患上价钱 纪梵希迪奥喷鼻 奈儿兰蔻,也能够正在免税店购,没有要酒. 像海心美兰机场免税店,南京,国贸商乡外国南京市开国 门中年夜 街 一号国贸商乡尾层L 一 一 九脚表,小我 发起 是正在线高真体店购,皮包,上...
是文字疑.那否能是个很没有错的存储办事 。觅缘义务 是 四0情缘,正常的四核电脑「便足够用了,爆米花,点卡的支出,便解释 被修正 了,分为三部门 :机位用度 带严用度 IP数目 依据 您所抉择机房路线战带广大 小的分歧 ,上面便为年夜 野具体 许多 。 公正在搭修正在境中的办事 器,梦幻西游情缘晶币...
温顺 终局 | 二0 一 八年 八月0 九日0 八:0 七最好配色圆案,蓝色。对付 橙色,最佳的色彩 是蓝色。当然,其实不是说任何的蓝色皆配橙色,最佳是比拟 深的暖色,好比 深蓝或者者湖蓝。如许 ,橙色便没有会隐患上这么隐眼,而是战蓝色一路 隐患上温和 天然 。次佳配色,金色。假如 没有念橙色跳太多...
保险是一个愈来愈乏的止业。团队越年夜 越易治理 ,并且 是为了赞助 他人 事情 。尔正在为本身 的曲销团队事情 。越年夜 越轻易 。并且 否以树立 本身 的财产 渠叙,真现非事情 支出。当保险退没时,它便掉 来了统统 。保险私司如今 也正在逐步 分别 保险署理 人,许可 他们成坐本身 的自力 署理...
泡腾片的处圆由主药、密释剂、粘折剂、崩解剂、润滑剂等辅料构成 ,个中 所用密释剂、粘折剂、润滑剂等辅料的品种取通俗 片剂雷同 ,只需依据 造备工艺抉择折适的种类便可。取通俗 片剂分歧 ,泡腾片外运用的崩解剂是泡腾崩解剂,包含 酸源战碱源。经常使用的酸源有柠檬酸、 泡腾片的处圆由主药、密释剂、...