C或C++ 编码规范适用C51详解Word文档下载推荐.docx

上传人:b****2 文档编号:15182806 上传时间:2022-10-28 格式:DOCX 页数:34 大小:35.46KB
下载 相关 举报
C或C++ 编码规范适用C51详解Word文档下载推荐.docx_第1页
第1页 / 共34页
C或C++ 编码规范适用C51详解Word文档下载推荐.docx_第2页
第2页 / 共34页
C或C++ 编码规范适用C51详解Word文档下载推荐.docx_第3页
第3页 / 共34页
C或C++ 编码规范适用C51详解Word文档下载推荐.docx_第4页
第4页 / 共34页
C或C++ 编码规范适用C51详解Word文档下载推荐.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C或C++ 编码规范适用C51详解Word文档下载推荐.docx

《C或C++ 编码规范适用C51详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C或C++ 编码规范适用C51详解Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。

C或C++ 编码规范适用C51详解Word文档下载推荐.docx

程序块采用缩进风格编写,缩进为4个空格位。

排版不混合使用空格和TAB键。

规则2>

在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;

进行非对等操作时,如果是关系密切的立即操作符(如->

),后不应加空格。

  采用这种松散方式编写代码的目的是使代码更加清晰。

例如:

  

(1)逗号、分号只在后面加空格

  printf("

%d%d%d"

a,b,c);

  

(2)比较操作符,赋值操作符"

="

、"

+="

,算术操作符"

+"

、"

%"

,逻辑操作符"

&

"

,位域操作符"

<

^"

等双目操作符的前后加空格

  if(lCurrentTime>

=MAX_TIME_VALUE)

  a=b+c;

  a*=2;

  a=b^2;

  (3)"

!

~"

++"

--"

(地址运算符)等单目操作符前后不加空格

  *pApple='

a'

;

//内容操作"

*"

与内容之间

  flag=!

bIsEmpty;

//非操作"

  p=&

cMem;

//地址操作"

与内容之间

  i++;

//"

"

  (4)"

->

."

前后不加空格

  p->

id=pId;

指针前后不加空格

  由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如最内层的括号内侧(即左括号后面和右括号前面)不要加空格,因为在C/C++语言中括号已经是最清晰的标志了。

  另外,在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。

  最后,即使留空格,也不要连续留两个以上空格(为了保证缩进和排比留空除外)。

规则3>

函数体的开始,类的定义,结构的定义,if、for、do、while、switch及case语句中的程序都应采用缩进方式,憑捄蛻}捰禀独占一行并且位于同一列,同时与引用它们的语句左对齐

  例如下例不符合规范。

  for(...){

  ...//程序代码

  }

  if(...)

  {

  voidDoExam(void)

  应如下书写。

  for(...)

规则4>

功能相对独立的程序块之间或for、if、do、while、switch等语句前后应加一空行。

  例如以下例子不符合规范。

  例一:

  if(!

ValidNi(ni))

  nRepssnInd=SsnData[index].nRepssnIndex;

  nRepssnNi=SsnData[index].ni;

  例二:

  char*pContext;

  intnIndex;

  longlCounter;

  pContext=new(CString);

  if(pContext==NULL)

  returnFALSE;

  应如下书写

规则5>

if、while、for、case、default、do等语句自占一行。

  示例:

如下例子不符合规范。

  if(pUserCR==NULL)return;

  应如下书写:

  if(pUserCR==NULL)

  return;

规则6>

若语句较长(多于80字符),可分成多行写,划分出的新行要进行适应的缩进,使排版整齐,语句可读。

  memset(pData->

pData+pData->

nCount,0,

  (m_nMax-pData->

nCount)*sizeof(LPVOID));

  CNoTrackObject*pValue=

  (CNoTrackObject*)_afxThreadData->

GetThreadValue(m_nSlot);

  for(i=0,j=0;

(i<

BufferKeyword[WordIndex].nWordLength)

  &

(j<

NewKeyword.nWordLength);

i++,j++)

规则7>

一行最多写一条语句。

  rect.length=0;

rect.width=0;

  rect.length=width=0;

  都应书写成:

  rect.width=0;

规则8>

对结构成员赋值,等号对齐。

  rect.top=0;

  rect.left=0;

  rect.right=300;

  rect.bottom=200;

规则9>

#define的各个字段对齐

  以下示例不符合规范

  #defineMAX_TASK_NUMBER100

  #defineLEFT_X10

  #defineBOTTOM_Y400

  应书写成:

规则10>

不同类型的操作符混合使用时,使用括号给出优先级。

  如本来是正确的代码:

  if(year%4==0||year%100!

=0&

year%400==0)

  如果加上括号,则更清晰。

  if((year%4)==0||((year%100)!

(year%400)==0))

  2.可理解性

  1.1注释

  注释的原则是有助于对程序的阅读理解,注释不宜太多也不能太少,太少不利于代码理解,太多则会对阅读产生干扰,因此只在必要的地方才加注释,而且注释要准确、易懂、尽可能简洁。

注释量一般控制在30%到50%之间。

规则1>

程序在必要的地方必须有注释,注释要准确、易懂、简洁。

  例如如下注释意义不大。

  /*如果bReceiveFlag为TRUE*/

  if(bReceiveFlag==TRUE)

  而如下的注释则给出了额外有用的信息。

  /*如果mtp从连接处获得一个消息*/

  if(bReceiveFlag==TURE)

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

  例子1

  /*获得系统指针和网络指针的副本*/

  例子2

  /*获得系统指针和网络指针的副本*/

对于所有的常量,变量,数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,在声明时都必须加以注释,说明其含义。

  /*活动任务的数量*/

  #defineMAX_ACT_TASK_NUMBER1000

  #defineMAX_ACT_TASK_NUMBER1000/*活动任务的数量*/

  /*带原始用户信息的SCCP接口*/

  enumSCCP_USER_PRIMITIVE

  N_UNITDATA_IND,/*向SCCP用户报告单元数据已经到达*/

  N_UNITDATA_REQ,/*SCCP用户的单元数据发送请求*/

  };

头文件、源文件的头部,应进行注释。

注释必须列出:

文件名、作者、目的、功能、修改日志等。

  例如:

  /*********************************************

  文件名:

  编写者:

  编写日期:

  简要描述:

  修改记录:

  ********************************************/

  说明:

摷蛞枋鰯一项描述本文件的目的和功能等。

撔薷募锹紨是修改日志列表,每条修改记录应包括修改日期、修改者及修改内容简述。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1