一、文件起始处的说明:
在 .h / .cpp文件开头应有一段格式统一的说明,内容包括:
①文件名(FileName);
②创建人(Creator);
③创建时间(Data);
④简短的文件功能、用途说明(Comment)。
示例:
/* */
/* FileName : main.cpp */
/* Creator : Xnsio */
/* Data : 2022-02-20 13:49:32 */
/* Comment : */
二、注释
除非极为简单,否则对应函数应有注释说明。包括功能、入口 / 出口参数,必要时还可有备注或补充说明。
(1)对于 if、while、do等其大括号内嵌代码块较长(需拖动滚动条来看)或者多层嵌套时,在结尾的 “ } ” 后应有说明。示例:
if ((n >= i || n < j) && k = i)
{
代码段
}//......
(2)函数入口有缺省值时,应有说明。示例:
bool mainfirm(
char* cp,
bool m_cancle = false, /* = false */
};
或
bool mainfirm(
char* cp,
bool m_cancle = false, // = false
};
(3)说明某个代码段的注释,可以给其代码段加上{}帮助阅读。示例:
// 代码段实现功能或意图描述
{
代码段
}
三、单行代码长度
单行代码长度一般推荐为80个ASCII字符,最长不得超过120个字符。折行应对齐。示例:
int intAdd(int a, int b, int c,
int d, int e);
四、合并行的问题
循环、判断语句的判断条件和执行代码不得在同一行上。示例:
正确:
if (n >= 0)
n = -1;
else
n = 1;
不得写作:
if (n >= 0) n = -1;
else n = 1;
五、指针中 * 号的位置
在指针的定义当中,* 号可以紧接类型,也可以在变量名之前。示例
正确:int* p;
int *p;
不得写作:
int * p;
六、全局函数的调用
在类方法内调用全局函数,全局函数名前必须加上“::”。
七、关于 if...else if
else if必须写在一行。
八、与“{” “}”有关的各项规定
(1)在“{”前不允许有除了空格和Tab外的任何字符,在它后可以有注释,但不得有代码。与“{”对应的“}”必须在同一列上。示例:
正确:
for (i = 0; i < n; i++)
{ //...
cout << "i=" << i << endl;
s++;
}
不得写作:
for (i = 0; i < n; i++)
{ cout << "i=" << i << endl;
s++;
}
也不得写作:
for (i = 0; i < n; i++){
cout << "i=" << i << endl;
s++;
}
(2)在循环、判断语句后若只有一行代码,在无歧义的情况下可省略“ { ” “}”。示例:
if (n >= 0)
n = -1;
else
n = 1;
九、与空格有关的各项规定
(1)在所有两目、三目运算符的两边都必须有空格;在单目运算符两边不必空格;但在“->” “::” “.”“[” “]”等运算符前后,及“&” “*”等运算符之后不得有空格。示例:
正确:
int n = 0, i;
for (int i = mMin; i <= mMax; i++)
不得写作:
int n=0,i;
for ( int i=mMin;i<=mMax;i++ )
(2)for、while、if等关键字后应有1个空格,再接“(”。示例:
正确:
if (0 == n)
不得写作:
if(0 == n)
(3)调用函数、宏时,“(”前不得有空格。示例:
正确:
printf("%d", n);
不得写作:
printf ("%d", n);
(4)类型强制转换时,“(” “)”前后不得有空格。示例:
可以写作:
(int*)doubleivar
(int *)doubleivar
不得写作:
(int* )doubleivar
(int * )doubleivar
十、与缩进有关的各项规定
(1)缩进以Tab为单位。1Tab应设置为4个空格宽度。
(2)下列情况,代码缩进一个Tab。
①函数体相对函数名及“{” “}”。示例:
int intpow(int n)
{
return (x * x);
}
②if、else、for、while、do等之后的代码。
③一行内写不下,折行的代码,应在合理位置折行。若有“+” “-” “*” “/” 等运算符,则运算符应在上一行行末,而不应该在下一行行首。
(3)switch后的case、default不必缩进。示例:
switch (n)
{
case 1:
...
case 2:
...
default:
...
}
----------------------------------------------------------The End----------------------------------------------------------