ome/img/nav3_on.png">
APP
系统平台
  • 建站知识
  • 联系我们
  • 咨询热线 :
    028-86922220

    疆括仕网站建设,新征程启航

    为企业提供网站建设、域名注册、服务器等服务

    c语言函数说明注释 c语言中注释的例子

    c语言如何注释?

    直接在该行需要注释的地方加上"//"即可。

    和平网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联公司2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司

    可以使用/*和*/分隔符来标注一行内的注释,也可以标注多行的注释。例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数。

    注释解释了这个可选参数的用法:

    int open( const char *name, int mode, … /* int permissions */ );

    代码具有较好的可移植性

    C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。

    以上内容参考:百度百科-C语言

    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 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:注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。

    说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。

    C语言的一个函数,谁能给逐句注释一下

    void Translate(void)

    {

    unsigned char data; //声明data为无符号字符型变量

    while((Fifo_Get(data))==0)//while循环,满足Fifo_Get(data)为真时进入循环(为取址符,传输data变量的存放地址给函数)

    {

    switch(stateRX) //多项选择,

    {

    case RCV_FE: //当stateRX的值等于RCV_FE时执行以下语句。(case的格式:case 常量 :。RCV_应该是通过在程序开头#define RCV_FE ??得到的,??表示任何符号 )

    if( data == 0xfe) //若data为0xfe(0x??表示十六进制数)时

    stateRX++; //stateRX自增(相当于stateRX=stateRX+1;但执行速度更快)

    else //若前面的data == 0xfe条件不成立,则执行以下语句

    stateRX = RCV_FE; //赋值语句

    break; //跳出switch,(若没有这步,若case RCV_FE:成立将会一直执行下去,忽略下面的case)

    case RCV_EF: //同理

    if( data == 0xef) //同理

    else //同理

    stateRX = RCV_FE; //同理

    break; //同理

    case RCV_ID: //同理

    LRC = 0Xff; //同理

    id = data; //同理

    LRC ^= data; //。。。。。这句就。。。LRC和data的各相应位进行异或再赋值给LRC(异或:位运算,法则是必须不同,否则没有,例子:1^1=0,1^0=1,0^0=0)

    stateRX++; //同理

    break; //同理

    case RCV_LEN: //同理

    len = data; //同理

    LRC ^= data; //同理

    stateRX++; //同理

    break;//同理

    case RCV_INSTRUCT://同理

    cmd = data;//同理

    LRC ^= data;//同理

    paraindex = 0;//同理

    if(len-2=0)//len-2=0的意思是先len-2再判断len-2是否小于等于零

    stateRX=RCV_CHKSUM;//同理

    else//同理

    stateRX++; //同理

    break; //同理

    case RCV_PARA://同理

    paratmp[paraindex++] = data;//将data赋值给paratmp[paraindex],然后paraindex自增;

    LRC ^= data;//同理

    if( paraindex = len-2)//同理

    stateRX++; //同理

    break;//同理

    case RCV_CHKSUM://同理

    if(LRC == data)//同理

    Dispatch(); //函数Dispatch()

    stateRX = RCV_FE; //同理

    break; //同理

    default://switch的末句,若以上case都不等于stateRX的值,则执行default后面的语句,这里default后面是brake;,这两句不要也可

    break;

    }

    }

    }不能说完,但希望能拿到这两百块

    C语言里有哪些注释方法

    答:在用C语言编程时,常用的注释方式有如下几种:

    (1)单行注释 //…

    (2)多行注释 /*…*/

    (3)条件编译注释 #if 0…#endif

    拓展资料:

    对于(1),注释只能显示在一行内,通常出现在一条语句的右边或者上方,对于注释符”//”,一个注释里只要有多余2个’/’都可以。

    对于(2),”/*…*/”不能嵌套使用,正如”if…else”中的”else”总是和隔它最近的”if”配对一样,”/*”总是和离它最近的”*/”相配对。

    针对(1)和(2)各自的缺陷,资深的程序员提出如(3)所示的注释,该注释的好处是能注释大块的程序,并且没有嵌套的限制,也就是说在”#if 0…#endif”的”…”处可以有”//”或”/*…*/”这样的注释。


    新闻名称:c语言函数说明注释 c语言中注释的例子
    文章来源:https://www.tyhkzb.com/article/doesjcp.html
    在线咨询
    服务热线
    服务热线:028-86922220
    TOP