1 / 63
文档名称:

华为C 语言通用编程规范.docx

格式:docx   大小:130KB   页数:63页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

华为C 语言通用编程规范.docx

上传人:1772186**** 2022/8/8 文件大小:130 KB

下载得到文件列表

华为C 语言通用编程规范.docx

相关文档

文档介绍

文档介绍:章节内容0前言目的重点关注约定例外
1原那么好代码的原那么类和函数设计指导原那么保证静态类型平安遵循C++ ISO标
准优先编译时检查错误使用命名空间来限定作用域优先使用C++特性而 不是c特性2命名通用命名文件命名函数命名类型命名变量
ReturnType result = VeryVeryVeryLongFunctionName( 足第1个参数,直接换行
paramNamel> paramName2, paramName3);
空格缩进如果函数调用的参数存在内在关联性,按照可理解性优先于格式排版要求,对参数 进行合理分组换行。
// Good;每行的参数代表一组相关性较强的数据结构,放在一行便于理解一int result = DealWithStructureLikeParams(left .x., >// 表示一组
的关参数一
, ); // 表示另外 一组相关参数if语句
if语句必须要使用大括号我们要求if语句都需要使用大括号,即便只有一条语句。
理由:-代码逻辑直观,易读;-在已有条件语句代码上增加新代码时不容易出错;•对于在
if语句中使用函数式宏时,有大括号保护不易出错(如果宏定义时遗漏了 大括号)。
if (objectlsNotExist) {// Good:单行条件语句也加大括号
return CreateNewObject();)
规那么禁止if/else/else if写在同一行条件语句中,假设有多个分支,应该写在不同行。
如下是正确的写法:
if (someConditions)
{ DoSomething(); • • •} else { // Good: eLse 与 if 在不同行
• • •)
下面是不符合规范的案例:
if (someConditions) {・・・} else {・・・} // Bad: eLse 与 if 在同一行循环语句
规那么循环语句要求使用大括号和if语句类似,我们要求for/while循环语句必须加上的大括号,即使循环体是空 的,或者循环语句只有一条。
for (int i = 0; i < someRange; i++)
{ DoSomething();)
如果循环体是空的,应该使用空的大括号,而不是使用单个分号。单个分号容易 被遗漏,也容易被误认为是循环语句中的一局部。
for (int i = 0; i < someRange; i++) { } // Good: for 循环体是空,使用大 括号,而不是使用分号while (someCondition) { } // Good: while循环体是空,使用大括号,而不是使 用分号
while (someCondition) {
continue; // Good: continue表示空逻辑,可以使用大括号也可以不使用)
坏的例子:
for (int i = 0; i < someRange; i++) ;// Bad:for 循环体是空,也不要只使用分号,要使用大括号
while (someCondition) ; // Bad:使用分号容易让人误解是while语句中的一局部switch语句
switch语句的case/default要缩进一层switch语句的缩进风格如下:
switch (var) {
case 0:// Good:缩进
DoSomethingl(); // Good:缩 进
break;
case 1: {// Good:带大括号格式
DoSomething2();
break;
)
default:
break;)
switch (var) {case 0:// Bad: case 未缩进
DoSomething();
break;default:// Bad: defauLt 未缩进
break;)
表达式建议表达式换行要保持换行的一致性,运算符放行末
较长的表达式,不满足行宽要求的时候,需要在适当的地方换行。一般在较低优先 级运算符或连接符后面截断,运算符或连接符放在行末。运算符、连接符放在行 末,表示“未结束,后续还有〃。例:
〃假设下面第一行已经不满足行宽要求if (currentvalue > threshold && // Good:换行后,逻辑操作符放在行尾 someConditionsion)
{ DoSomething();
• • •)
int result = reallyReallyLongVariableNamel +// GoodreallyReallyLongVariableN