- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言代码检查项(第一阶段)
第一阶段主要以C语言编程排版为主要检查项, 共13条:
程序块要采用缩进风格编写,缩进的空格数为4个,目前使用sourceinsight时要求使统一的设置,通过替换统一的GLOBAL.CF3来实现。
不允许把多个短语句(不包括变量定义)写在一行中,即一行只写一条语句。
示例:如下例子不符合规范。
rect.length = 0; rect.width = 0;
应如下书写
rect.length = 0;
rect.width = 0;
if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
示例:如下例子不符合规范。
if (NULL == pUserCR) return;
应如下书写:
if (NULL == pUserCR)
{
return;
}
遇条件判断(==、!=)时,常量放左边,变量放右边,以防出现“==”变“=”的错误。
示例:如下例子不符合规范。
if (pUserCR == NULL)
{
return;
}
应如下书写:
if (NULL == pUserCR)
{
return;
}
函数的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。
程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。
示例:如下例子不符合规范。
for (...) {
... // program code
}
if (...)
{
... // program code
}
void example_fun(void)
{
... // program code
}
应如下书写。
for (...)
{
... // program code
}
if (...)
{
... // program code
}
void example_fun(void)
{
... // program code
}
两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如-),后不应加空格。
说明:采用这种松散方式编写代码的目的是使代码更加清晰。
由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在C/C++语言中括号已经是最清晰的标志了。
在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格。
示例:
逗号、分号只在后面加空格。
int a, b, c;
比较操作符, 赋值操作符=、 +=,算术操作符+、%,逻辑操作符、,位域操作符、^等双目操作符的前后加空格。
if (current_time = MAX_TIME_VALUE)
a = b + c;
a *= 2;
a = b ^ 2;
!、~、++、--、(地址运算符)等单目操作符前后不加空格。
*p = a; // 内容操作*与内容之间
flag = !isEmpty; // 非操作!与内容之间
p = mem; // 地址操作 与内容之间
i++; // ++,--与内容之间
-、.前后不加空格。
p-id = pid; // -指针前后不加空格
if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显。
if ((a = b) (c d))
程序中不允许直接使用数字代表具体含义,需要使用宏和枚举定义后再使用.
if(sys_io.vga_mode == 0)
{
sys_io.vga_mode = 1;
}
应使用枚举定义后再使用,使程序可读性更强.
if(sys_io.vga_mode == MODE_800x600)
{
sys_io.vga_mode = MODE_1024x768;
}
代码中无用的注释应及时去掉,不出现类似11111的无意义注释
如下列的打印应修改成更有意义的语句:
TRACE(1111111\n)
TRA
文档评论(0)