当前位置:首页 > 黑客教程 > 正文内容

c代码注释规范(C++注释规范)

hacker2年前 (2022-07-31)黑客教程123

本文目录一览:

c语言中注释的位置

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

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

2、可以使用//插入整行的注释,或者将源代码写成两列分栏的格式,程序在左列,注释在右列:

const double pi = 3.1415926536;       // pi是—个常量

扩展资料

在 C99 标准中,单行注释正式加入C语言,但是大部分编译器在 C99 之前就已经开始支持这种用法。有时候,其被称作“C++风格”的注释,但实际上,其源自于C的前身 BCPL。

1、在引号中,如果采用/*或//分隔一个字符常量或字符串字面量(string literal),它们都不会被视为注释的开始。例如,下面语句就没有注释:

printf("Comments in C begin with /* or //.\n" );

2、预处理器仅通过检查注释的结束符来检测注释中的字符,因此,不能嵌套块注释。然而,可以使用/*和*/注释包含单行注释的源代码:

/* 暂时注释掉这两行:

  const double pi = 3.1415926536;  // pi是一个常量

  area = pi * r * r;   // 计算面积

暂时注释到此 */

如何让C++中的代码规范一点

1.关键字if, while, for与其后的控制表达式的(括号之间插入一个空格分隔,但括号内的表达式应紧贴括号。

例如:while ␣(1);

2.双目运算符的两侧插入一个空格分隔,单目运算符和操作数之间不加空格。

例如:i␣=␣i␣+␣1、++i、!(i␣␣1)、-x、a[1]等。

3.后缀运算符和操作数之间也不加空格。

例如:取结构体成员s.a、函数调用foo(arg1)、取数组成员a[i]。

4. 、,号和;号之后要加空格,这是英文的书写习惯。

例如:for␣(i␣=␣1;␣i␣␣10;␣i++)、foo(arg1,␣arg2)。

5.以上关于双目运算符和后缀运算符的规则不是严格要求,有时候为了突出优先级也可以写得更紧凑一些.

例如:for␣(i=1;␣i10;␣i++)、distance␣=␣sqrt(x*x␣+␣y*y)等。但是省略的空格一定不要误导了读代码的人,例如a||b␣␣c很容易让人理解成错误的优先级。

6.由于标准的Linux终端是24行80列的,接近或大于80个字符的较长语句要折行写,折行后用空格和上面的表达式或参数对齐。

例如: if␣(sqrt(x*x␣+␣y*y) 5.0

␣x␣␣0.0

␣y␣␣0.0)

缩进

内核关于缩进的规则有以下几条:

1.要用缩进体现出语句块的层次关系,使用Tab字符缩进,不能用空格代替Tab。函数里面的代码,也称为代码块或复合代码,要求进行缩进。遇到循环和分支结构的处理,循环和分支下的代码块要求再进行缩进,假设循环和分支里又嵌套了循环和分支,代码块应该层层缩进

2.if/else、while、do/while、for、switch这些可以带语句块的语句,语句块的{和}应该和关键字写在一起,用空格隔开,而不是单独占一行。

例如应该这样写:

if␣(...)␣{

→语句列表

}␣else␣if␣(...)␣{

→语句列表

}

更多的人习惯这样写:

If ␣(…)

{

→语句列表

}

else if ␣(…)

{

→语句列表

}

内核的写法和[KR]一致,好处是不必占用太多空行,使得一屏能显示更多代码。这两种写法用得都很广泛,只要在同一个项目中能保持统一就可以了。

3.函数定义的{和}单独占一行,这一点和语句块的规定不同.

例如 :

int sum(int a, int b)

{

语句列表;

}

4. switch和语句块里的case、default对齐写,也就是说语句块里的case、 default相对于switch不往里缩进。

例如:

switch(…) {

case ‘A’:

语句列表;

case ‘B’:

语句列表;

default:

语句列表;

}

5.一行只写一条语句

6.代码中每个逻辑段落之间应该用一个空行分隔开。例如每个函数定 义之间应该插入一个空行,头文件、全局变量定义和函数定义之间也应该插入空行.

7.在分支和循环中不管有一条还是多条语句建议都要加上“{}”

注释

1.单行注释应采用/*␣comment␣*/的形式,用空格把界定符和文字分开。

2.整个源文件的顶部注释。说明此模块的相关信息,例如文件名、作者和版本历史等,顶头写不缩进。

3.相对独立的语句组注释。对这一组语句做特别说明,写在语句组上侧,和此语句组之间不留空行,与当前语句组的缩进一致。注意,说明语句组的注释一定要写在语句组上面,不能写在语句组下面。

4.代码行右侧的简短注释。对当前代码行做特别说明,一般为单行注释,和代码之间至少用一个空格隔开,一个源文件中所有的右侧注释最好能上下对齐。

标识符的命名规范

标识符的命名要清晰明了,可以使用完整的单词和大家易于理解的缩写。短的单词可以通过去元音形成缩写,较长的单词可以取单词的头几个字母形成缩写,也可以采用大家基本认同的缩写。例如count写成cnt,block写成blk,length写成len,window写成win,message写成msg,temporary可以写成temp,也可以进一步写成tmp。

内核风格规定变量、函数和类型采用全小写加下划线的方式命名,常量(宏定义和枚举常量)采用全大写加下划线的方式命名。如函数名radix_tree_insert、类型名struct radix_tree_root。

常量的命名规范:每一个英文字符大写 ,每个单词之间可以用‘_’连接 RADIX_TREE_MAP_SHIFT等。

标签的命名规范

要求有一定的描述性,顶端左对齐

全局变量和全局函数的命名一定要详细,不惜多用几个单词多写几个下划线,例如函数名radix_tree_insert,因为它们在整个项目的许多源文件中都会用到,必须让使用者明确这个变量或函数是干什么用的。局部变量和只在一个源文件中调用的内部函数的命名可以简略一些,但不能太短,不要使用单个字母做变量名,只有一个例外:用i、j、k做循环变量是可以的。

针对中国程序员的一条特别规定:禁止用汉语拼音作为标识符名称,可读性极差。

函数的编码风格

每个函数都应该设计得尽可能简单,简单的函数才容易维护。应遵循以下原则:

实现一个函数只是为了做好一件事情,不要把函数设计成用途广泛、面面俱到的,这样的函数肯定会超长,而且往往不可重用,维护困难。

函数内部的缩进层次不宜过多,一般以少于4层为宜。如果缩进层次太多就说明设计得太复杂了,应该考虑分割成更小的函数来调用。

函数不要写得太长,建议在24行的标准终端上不超过两屏,太长会造成阅读困难,如果一个函数超过两屏就应该考虑分割函数了。

执行函数就是执行一个动作,函数名通常应包含动词,例如get_current、radix_tree_insert。

比较重要的函数定义上面必须加注释,说此函数的功能、参数、返回值、错误码等。

另一种度量函数复杂度的办法是看有多少个局部变量,5到10个局部变量就已经很多了,局部变量再多就很难维护了,应该考虑分割函数。

函数参数的防错设计

程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。

在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。

在函数的入口处,使用断言检查参数的有效性(合法性)。

assert(表达式); 的意思是:当表达式为真时,程序继续运行,如果表达市为假,那程序就会停止运行,并提示错误信息。

#include stdio.h

#include assert.h

void test(char *p)

{

assert(p != NULL);

printf("p=%s\n",p);

}

程序说明:由于我们在main函数中传了NULL指针值给test函数,在test函数执行到assert(p != NULL);发现表达式不为真,就终止了程序的运行,并提示错误的行数信息。

注意:由于assert是一个宏,只在debug版本中起作用,所以assert一般只用于内部函数对参数有效性进行检查,如果该函数作为一个外部接口来使用时,一般需要利用if,else语句进行防错设计。

函数注释:说明此函数的功能、参数、返回值、错误码等,写在函数定义上侧,和此函数定义之间不留空行,顶头写不缩进。

/*-------------------------------------------------

function:判断分数格式是否正确

params:score 客户输入的分数

returns:1 分数格式正确 0 分数格式错误

-------------------------------------------------*/

int IsValidScore(char *score)

{

/*……*/

}

函数内的注释要尽可能少用。注释只是用来说明你的代码能做什么(比如函数接口定义),而不是说明怎样做的,只要代码写得足够清晰,怎样做是一目了然的,如果你需要用注释才能解释清楚,那就表示你的代码可读性很差,除非是特别需要提醒注意的地方才使用函数内注释。

编程好习惯

初始化变量

尽可能使用局部变量

一个函数只有一个紧凑的职责

避免函数过长避免函数嵌套过深

不要拘泥于小节

……

在一个C源程序中,注释部分两侧的分界符分别为________和________

在一个C源程序中,注释部分两侧的分界符分别为 /* 和 */。

C语言中,注释有两种类型

1、单行注释

单行注释通常用于对程序中的某一行代码进行解释,用”//”符号表示,后面为注释的内容

示例代码

Printf("Hello,world\n");       //输出Hello,world

2、多行注释

多行注释就是注释中的代码,可以为多行,以符号”/*“开头,以符号”*/”结尾

示例代码

/* printf("Hello,world\n");

return 0;    */

扩展资料:

c语言注释规范

1、边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

2、注释的内容要清楚、明了,含义准确,防止注释二义性。

3、注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

c语言代码编写的格式?

C语言 程序代码编写规范

(初级程序员 讨论版)

前言

一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。

说明

l 本文档主要适用于刚刚开始接触编程的初学者。

l 对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。

目录

1 代码书写规范

2 注释书写规范

3 命名规范

4 其它一些小技巧和要求

1 代码书写规范

1.1函数定义

花括号: { }

每个函数的定义和说明应该从第1列开始书写。函数名(包括参数表)和函数体的花括号应该各占一行。在函数体结尾的括号后面可以加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。

范例1:函数的声明

void matMyFunction(int n)

{

……

} /* matMyFunction*/

1.2空格与空行的使用

要加空格的场合

l 在逗号后面和语句中间的分号后面加空格,如:

int i, j, k;

for (i = 0; i n; i++)

result = func(a, b, c);

l 在二目运算符的两边各留一个空格,如

a b a = b i = 0

l 关键字两侧,如if () …, 不要写成if() …

l 类型与指针说明符之间一定要加空格:

char *szName;

不加空格的场合

l 在结构成员引用符号.和-左右两加不加空格:

pStud-szName, Student.nID

l 不在行尾添加空格或Tab

l 函数名与左括号之间不加空格:

func(…)

l 指针说明符号*与变量名间不要加空格:

int *pInt; 不要写成: int * pInt;

l 复合运算符中间不能加空格,否则会产生语法错误,如:

a + = b a = b 都是错误的

空行与换行

l 函数的变量说明与执行语句之间加上空行;

l 每个函数内的主要功能块之间加空行表示区隔;

l 不要在一行中写多条语句.

范例2:空行与换行

int main()

{

int i, j, nSum = 0; //变量说明

for (i = 0; i 10; i++) //执行代码

{

for (j = 0; j 10; j++)

{

nSum += i;

}

}

}

1.3缩进的设置

根据语句间的层次关系采用缩进格式书写程序,每进一层,往后缩进一层

有两种缩进方式:1,使用Tab键;2,采用4个空格。

整个文件内部应该统一,不要混用Tab键和4个空格,因为不同的编辑器对Tab键的处理方法不同。

1.4折行的使用

· 每行的长度不要超过80个字符,当程序行太长时,应该分行书写。

· 当需要把一个程序行的内容分成几行写时,操作符号应该放在行末。

· 分行时应该按照自然的逻辑关系进行,例如:不要把一个简单的逻辑判断写在两行上。

· 分行后的缩进应该按照程序的逻辑关系进行对齐。例如:参数表折行后,下面的行应该在参数表左括号的下方。

范例2:折行的格式

dwNewShape = matAffineTransform(coords, translation,

rotation);

if (((new_shape.x left_border)

(new_shape.x right_border))

((new_shape.y bottom_border)

(new_shape.y top_border)))

{

draw(new_shape);

}

1.5嵌套语句(语句块)的格式

对于嵌套式的语句--即语句块(如,if、while、for、switch等)应该包括在花括号中。花括号的左括号应该单独占一行,并与关键字对齐。建议即使语句块中只有一条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。建议对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。

范例3:嵌套语句格式

if (value max)

{

if (value != 0)

{

func(value);

}

}

} else {

error("The value is too big.");

} /* if (value max) */

2 注释书写规范

注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。注释量要适中,过多或过少都易导致阅读困难。

2.1注释风格

· C语言中使用一组(/* … */)作为注释界定符。

· 注释内容尽量用英语方式表述。

· 注释的基本样式参考范例4。

· 注释应该出现在要说明的内容之前,而不应该出现在其后。

· 除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式。

范例4:几种注释样式

/*

* ************************************************

* 强调注释

* ************************************************

*/

/*

* 块注释

*/

/* 单行注释 */

//单行注释

int i; /*行末注释*/

2.2何时需要注释

· 如果变量的名字不能完全说明其用途,应该使用注释加以说明。

· 如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。

· 对于一个比较长的程序段落,应该加注释予以说明。如果设计文档中有流程图,则程序中对应的位置应该加注释予以说明。

· 如果程序中使用了某个复杂的算法,建议注明其出处。

· 如果在调试中发现某段落容易出现错误,应该注明。

3 命名规范

3.1常量、变量命名

l 符号常量的命名用大写字母表示。如:

#define LENGTH 10

l 如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接。如:

#define MAX_LEN 50

变量命名的基本原则:

l 可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清楚其含义。

l 不要使用人名、地名和汉语拼音。

l 如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。

l 多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。如:

dwUserInputValue。

3.2函数命名

函数命名原则与变量命名原则基本相同。对于初学者,函数命名可以采用“FunctionName”的形式。

4 其它一些小技巧和要求

l 函数一般情况下应该少于100行

l 函数定义一定要包含返回类型,没有返回类型加void

l 写比较表达式时,将常量放在左边

10 == n

NULL != pInt

l 指针变量总是要初始或重置为NULL

l 使用{}包含复合语句,即使是只有一行,如:

if (1 == a)

{

x = 5;

}

扫描二维码推送至手机访问。

版权声明:本文由黑客平台在线接单_免费黑客平台的网站发布,如需转载请注明出处。

本文链接:http://heikexuexi.com/63858.html

分享给朋友:

“c代码注释规范(C++注释规范)” 的相关文章

自我鉴定300字本科

自我鉴定300字本科

                                                                                               自我判断 是一个小我 在一个时期 ,一年一个阶段,对于自己 的进一步学习 战争 ,职业 和其他圆自我总结。如何...

 应聘自我介绍怎么说

应聘自我介绍怎么说

                                                                                               自荐 是一个特殊的 主要 部门 。是否以至于自荐 曾经影响到试官处理 本身 感觉感染 的好处。那么,如何 能...

个人小结大学生简短

个人小结大学生简短

                                                                                               当教学期停止 时,许多 教熟都邑 作了一个小我 总结,没有处理 本身 当时的教学期。对于 年夜 教熟来说,我们...

销售述职报告范文,精选文章

销售述职报告范文,精选文章

                                                                                               述职申报 就是用来回 来总结 在任职时代的事情 的总结。述职申报 有哪些?昨天给年夜 野带来的是关于发售 述职...

出国留学人员须知

出国留学人员须知

                                                                                               许多 人正处于教育和不可避免的 阶段。后来,都邑 选择不出国留学。如果 没有出国留学,那么我们也需要 ?知道一...

毕业生个人总结

毕业生个人总结

                                                                                               小我 总结次要是总结中风 成熟本身 在学校 时代 的各个方面。所以对付 中风 成熟,如何写出自己 的总结?昨天...

评论列表

余安夙世
2年前 (2022-07-31)

注释 1.单行注释应采用/*␣comment␣*/的形式,用空格把界定符和文字分开。 2.整个源文件的顶部注释。说明此模块的相关信息,例如文件名、作者和版本

痛言里予
2年前 (2022-07-31)

也可以标注多行的注释。例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数。注释解释了这个可选参数的用法:int open( const char *name, int mode, … /* int perm

弦久娇痞
2年前 (2022-07-31)

。l 如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。l 多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。如:dwUserInputValue。3.2函数命名函数命名原则与变

惑心私野
2年前 (2022-07-31)

(i␣␣1)、-x、a[1]等。 3.后缀运算符和操作数之间也不加空格。 例如:取结构体成员s.a、函数调用foo(arg1)、取数组成员a[i]。 4. 、,号和;号之后要加空格,这是

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。