导航:首页 > 软件知识 > 如何使用程序注解

如何使用程序注解

发布时间:2023-05-28 19:48:16

⑴ 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 */
/* transmission this message */
N_UNITDATA_REQ, /* sccp user's unit data transmission 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 moal can modify it, and other */
/* mole 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:注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。
说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。

⑵ 什么是注释如何在Java程序中加入注释

试凯裂咐想一下,一个没有一句注释的程序源码,怎么读,一个程序要上万条代码不可能全部记得住哪一块是什么用,而且一个项目也不会是一个人独自完成,那样效率太低,多人合作就要给别人说明,每一块是什么用,方便他人使用,方便自己更正,而这些说明文字就是注释,注释不会被执行,不影响运行结果。

Java中代码的注释有三种:盯纯

// 注释一行
/* ...... */ 注释若干行
/** ...... */ 注释若干行,并写入 javadoc 文档

前两种比较容易理解,至于第三种,你学习Java看的api文档就是javadoc程序根据第三种的注释生成的。

(2)如何使用程序注解扩展阅读

注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写源梁程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。

⑶ 如何快速注释程序代码

在开发工具中,设置/首选项中,都支持自定义快捷键。
大多数这类工具的快捷键操作就是 Ctrl + Shift + / 或者 Ctrl + / ,
使用前记得选中要注释的区域,
取消注释只用同样的快捷键即可。
/* 这是分隔符 */
给你看一些好玩的注释:
// 亲爱的维护者:
// 如果你尝试了对这段程序进行‘优化’,
// 并认识到这种企图是大错特错,请增加
// 下面这个计数器的个数,用来对后来人进行警告:
// 浪费在这里的总时间 = 39h
2.
/** * 致终于来到这里的勇敢的人:
你是被上帝选中的人,英勇的、不辞劳苦的、不眠不修的来修改
我们这最棘手的代码的编程骑士。你,我们的救世主,人中之龙,
我要对你说:永远不要放弃,永远不要对自己失望,永远不要逃走,辜负了自己。
永远不要哭啼,永远不要说再见。永远不要说谎来伤害自己。 */
3.
Exception up = new Exception("Something is really wrong."); throw up;
4.
// 一些修改1 - 2002/6/7 增加临时的跟踪登录界面
// 一些修改2 - 2007/5/22 我临时的犯傻
5.
#define TRUE FALSE //逗一逗调试程序的傻瓜们
6.
if (/*you*/ $_GET['action']) { //celebrate(恭喜)
7.
// 如果这段代码好用,那它是Paul DiLascia写的。
//如果不好用,我不知道是谁写的。

8.
//写这段代码的时候,只有上帝和我知道它是干嘛的
//现在,只有上帝知道
9.
// 晕了,以后再修改
10.
// 神奇。勿动。

⑷ 注解@PostConstruct与@PreDestroy使用讲解

从JavaEE5规范开始,Servlet增加了两个影响Servet生命周期的注解:@PostConstruct和@PreConstruct。这两个注解被用来修饰一个 非静态的void方法

其实从依赖注入的字面就可以知道,要将对象p注入到对象a,那么首先吵孙旦就必须得生成对象p与对象a,只能执行注入。所以,如果一个类A中有个成员变量p被@AutoWrited注解,那么@AutoWrited注入是发生再A的构造方法执行完成之后的。
如果想在生成对象的时候执行某些初始化操作,而偏偏这些执行初始化的操作又依赖于依赖注入,那么就无法在构造函数中实现。为此,可以使用@PostConstruct注解一个方法来完成初始化,@PostConstruct注解的方法将会在依赖注入完成后自动调用。
Construct(构造函数) >> @Autowired >> @PostConstruct

1.只有一个非静态方法才能使用此注解
2.被注解的方法不得有任何参数
3.被注解的方法返回值必须为void
4.被注解方法不得抛出已检查异常
5.此方法只会被执行一次

写法有如下两种:

或者

被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。@PostConstruct在构造函数之后执行,init()方法之升扰前执行。PreDestroy()方法在destroy()方法执行之后执行

需要注意的是,注解会多多少少的影响到服务器的启动速度。服务器在启动时会遍历Web应用的WEB-INF/classess下的所有class文件与WEB-INF/lib下的所有jar文件,以检查哪些类使用了注解。如果所有应用程序中没有任何注解,可以在Web.xml中设置的metadata-complete
属性设置为true。(支持@PostConstruct和@PreDestroy的服务器需要凯答支持Servlet2.5规范。Tomcat5.x仅支持Servlet2.4规范)

⑸ 如何在西门子PLC程序中输入注解

· 项目组件注释 · 网络注释 · 项目咐缺燃组件属性项目组件注释 在“网络1”上方的灰色方框中单击,输入POU注释。 您可以单击“切换POU注释”按钮 或选择和取消选择检视(View)> POU注释(POU Comments)选项,在POU注释“打开”(可视)或“关闭”(隐藏)之间切换。 每条POU注释所允许使用的最大字符数为4,098。POU注释是供选用项目,可视时,始终位于POU顶端,并在第一个网络扮嫌之前显示。 西门子PLC的网络标题: 将光标放在网络标题行的任何位置,输入一个识别该逻辑网络的标题。昆仑通态触摸屏网络标题中可允许使用的最大字符数为 127。 西门子PLC的网络注释: 在“网络1”下方的灰色衡虚方框中单击,输入网络注释。您可以输入识别该逻辑网络的注释,并输入有关网络内容的说明。 您可以单击“切换网络注释”按钮 或选择和取消选择检视(View)> 网络注释(Network Comments)选项,在网络注释“打开”(可视)和“关闭”(隐藏)之间切换。 威纶触摸屏的网络注释中可允许使用的最大字符数为4,096。 西门子PLC的项目组件属性: 您可以用以下两种方法中的一种存取“属性”标记。 用鼠标右键单击指令树中的POU ,并从鼠标右键菜单中选择“属性”。“一般”标记 “一般”标记允许您为子例行程序、中断例行程序和主程序块(OB1)重新编号和重新命名,并为项目指定一个作者。 注释:您不能将默认名称(STEP 7- Micro/WIN指定的POU地址,例如,SBR1代表子例行程序或INT1代表中断例行程序)用作符号名,因为这样即构成 STEP 7-Micro/WIN会报告一则错误。 如果您在程序中为POU指定符号名,符号名会在程序代码中显示,即使您没有启用“符号编址”视图亦如此。符号表显示一个列出所有符号名赋值的标记(“POU符号”)。您只能检视该标记;但无法从符号表编辑条目。欲改变赋值,您必须编辑 适当的POU的“属性”对话框。 “保护”标记 “保护”标记允许您选择一个密码保护POU,以便其他用户无法看到该POU,并在下载时加密。欲用密码保护POU: 1. 用鼠标单击“主POU”,并选择“属性...”。 2. 选择“保护”标记。 3. 选择“用密码保护该POU”复选框。输入一个四个字符的密码并核实该密码。

⑹ 西门子PLC如何在STL中输入程序注解

您可以将一整行作为注解;您可以把注解作为一行放在有效指令之后。您不能创建行中注解;双斜线之后的所有内容均被编译程 序视作注解。 最大行长(包括注解)为255个字符。 举例:Network 1 //本行介绍程序的第一个网络 LD I0.0 //在I0.0处载入数值 O I0.1 //或带有10.1数值项目组件注解 在网络1上方的灰色方框中单击,输入POU注解。 您可以用单击“切换POU注解”按钮 或选择和取消选择检视(View)> POU注解(POU Comments)选项的方法,在POU注解“打开”(可见)或“关闭”(隐藏)之间切换。 每条POU注解最多可使用4096个字符。POU注解是选用项目,显示时始终位于POU顶端,并在第一个网络之前显示。 网络标题将光标放在网络标题行中的任何位置,输入一个可识别该逻辑网络的标题。网络标题最多可使用 127个字符。 网络注解在西门子PLC编程软件网络1下方的灰色方框中单击,输入网络注解。您可以输入一条识别该逻辑网络的注解,并增加有关网络内容的说 您可以用单击“切换网络注解”按钮 或选择和取消选择检视(View)> 网络注解(Network Comments)选项的方法,在网络注解“打开”(可见)或“关闭”(隐藏)之间切换。 网络注解中最多可使用4096个字符。 项目组件属性 您可以用以下任何一种方法存取“属性”制表符: 用鼠标右键单击指令树中的POU,并从鼠标右键菜单中选择“属性”。“一般”制表符 “一般”制表符允许您为子例行程序、中断例行程序和主程序块(OB1)重新编号和重新命名,并为项目指定一个作者。 注释:您不能将默认名称(由STEP 7-Micro/WIN指定的POU地址,例如,SBR1代表子例行程序或INT1代表中断例行程序)用作符号名,因为这将构成重 STEP 7-Micro/WIN会报告一则错误。 如果您为西门子PLC程序中的POU指定符号名,符号名会在程序代码中显示,即使您没有启用“符号编址”视图亦如此。“符号表”显 示一个特殊的制表符(“POU符号”),该制表符列出所有符号名赋值。您只能检视该制表符,但无法从“符号表”编辑条 目。欲更改赋值,您必须编辑适当POU的“属性”对话。 “保护”制表符

⑺ 为什么要为程序添加注释,在java程序中如何为程序添加注释

注释是用来给开发者或者是软件后续的维护者来看的。一般是用来描述这一段代码或者是程序做了些什么样的事情。实现了哪闭乎些功能,神拿java里面注释代码,可以分为行注释和块注释,方法注释等。
行轿瞎悉注释就是在需要注释的代码前加 //
块注释则是用 /* 和 */ 把文本段落框起来即可

⑻ 如何快速注释程序代码

在进行程序调试时,可能需要注释掉大片的程序代码,以缩小Bug出现的范围,从而尽快锁明大裂定错误原因。那么使用Eclipse如何快速注释程序代码呢?下面就讲解3种常用方法。

法一:使用Ctrl+/快捷键

第1步:在Eclipse中拖动鼠标,选中需要注释的代码,通常为连续多行代码。

第2步:按住Ctrl+/快捷键

第3步:会发现所选代码被“//”注释掉。当调试完后,可再次按住Ctrl+/快捷键打开仿桐注释。

方法二:使用Ctrl+Shift+C快捷键

第1步:在Eclipse中拖动鼠标,选中需要注释的代码。

第2步:按住Ctrl+Shift+C快捷键

第3步:会发现所选代码被“//”注释掉。当调试完后,可再次按住Ctrl+Shift+C快捷键打开注释。

方法三:使用Ctrl+Shift+/快捷键

第1步:在Eclipse中拖动鼠标,选中需要注释的代码。

第2步:按住Ctrl+Shift+/快捷键。

第3步:会发现所选代码被“/* */”注释掉。

第4步:当调试完后激闭,可按住Ctrl+Shift+\快捷键打开注释。

⑼ 在python中如何使用注释

python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。

一、python单行注释符号(#):井号(#)常被用作单行注释符号,在代码中使用#时,它右边的任何数据都会被忽略,当做是注释。print 1 #输出1,#号右边的内容在执行的时候是不会被输出的。

二、批量、多行注释符号:在python中也会有注释有很多行的时候,这种情况下就需要颂坦批量多行注释符了。多行注释是用三引号''' '''包含的。

python正则表达式的注释方法:学过正则都知道,那简直是天书,为了提高正则的可读性,键带正则表达式中提供了X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。

Python:

是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。

相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的野亮桐支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

⑽ 为什么要为程序添加注释,在java程序中如何为程序添加注释

定义规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)。
// 注释一行
/* ...... */ 注释若干行
/** ...... */ 注释若干行,并写入 javadoc 文档

如下代码:

package陪袜山com.qiu.lin.he;

/**
*第三种注释方式
*@authorAdministrator
*
*/
publicclassCeShi{

publicstaticvoidmain(String[]args){

intstr=107653;
//System.out.print(str/(24*60*60)+"天");
/*System.out.print(str%(24*60*60)/(60*60)+"芦中小时");
System.out.print(str%(24*60好凯*60)%(60*60)/60+"分钟");*/
System.out.print(str%(24*60*60)%(60*60)%60+"秒");
}
}
阅读全文

与如何使用程序注解相关的资料

热点内容
深圳招银金融资产交易中心怎么样 浏览:98
什么产品是求着买的 浏览:885
如何用数据线做好玩的东西 浏览:627
如何以低分辨率运行特定程序 浏览:234
手游代理需要注意什么细节 浏览:55
悬浮技术怎么做 浏览:537
如何预约茅台小程序 浏览:469
氩气瓶多少钱一瓶批发市场 浏览:983
中本聪子币什么时候可以交易 浏览:571
大唐豆豆怎么代理 浏览:718
如何招代理帮自己卖货 浏览:229
数据漫游一个小时多少钱 浏览:114
如何删掉被锁定的信息 浏览:83
什么产品能让客户持续盈利 浏览:119
卤味批发市场怎么做 浏览:242
潍坊最大的车辆市场在哪里 浏览:499
苹果手机如何把数据转到小米手机 浏览:612
代理钢材生意怎么样 浏览:878
交易猫的租号中心在哪里 浏览:439
信息学校填错了怎么办 浏览:717