嵌入式软件的编程要求规范.docx
- 文档编号:12717870
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:53
- 大小:86.06KB
嵌入式软件的编程要求规范.docx
《嵌入式软件的编程要求规范.docx》由会员分享,可在线阅读,更多相关《嵌入式软件的编程要求规范.docx(53页珍藏版)》请在冰豆网上搜索。
嵌入式软件的编程要求规范
TRZN嵌入式软件编程规X
文档修改历史:
0.1
2016-10-28
杨科
ykee126126.
根据查阅的相关资料整理,此版本为第一次提交。
1文档概述
1.1关于本文档
本文档规X了某某天人智能某某嵌入式软件部软件代码的书写规X和原如此。
本文档仅供公司内部员工使用。
公司某某,严禁外传。
本文档中各规如此的格式如下:
【规如此编号】[规如此内容][[标记]]
其中[标记]的含义如下:
〔必须〕:
表示该条规如此是必须遵守的。
〔建议〕:
表示该条规如此是建议遵守的。
〔可选〕或没有标记:
表示该条规如此是可选择遵守的。
本文档的示例中,如有使用“//〞,并非代码注释,而是文档的注释(有可能是文档中对代码注释的解释)。
1.2参考文献
[1]高质量C++编程
[2]EffectiveC++
[3]MoreEffectiveC++
[4]C++Primer
[5]ThinkinginC++
2排版
●【规如此21】程序块要采用缩进风格编写,缩进的空格数为4个,对齐使用空格键,不得使用TAB键。
[必须]
嵌入式软件开发的代码编辑器,推荐使用KeiluVision5,编辑器参数设置见附录A。
●【规如此22】相对独立的程序块之间、变量说明之后必须加空行。
[必须]
示例:
不正确的书写方式:
if(!
rpr_valid_ni(ni))
{
...//programcode
}
gRprRepssnInd
=gRprSsnData[idx].repssn_index;
gRprRepssnNi=gRprSsnData[idx].ni;
正确的书写方式:
if(!
rpr_valid_ni(ni))
{
...//programcode
}
//空行
gRprRepssnInd
=gRprSsnData[idx].repssn_index;
gRprRepssnNi=gRprSsnData[idx].ni;
●【规如此23】较长的语句〔>80字符〕要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进展适当的缩进,使排版整齐,语句可读。
[必须]
示例:
gRprPermCountMsg.head.len=RPR_NO7_TO_STAT_PERM_COUNT_LEN+
RPR_STAT_SIZE_PER_FRAM*sizeof(UINT32);
gSysAcbTaskTable[frame_id*RPR_STAT_TASK_CHECK_NUMBER+index].nOccupied=
rprStatPoi[index].nOccupied;
gSysAcbTaskTable[taskno].nDurationTrueOrFalse=
SYS_getSccpStatisticState(statItem);
gRprReportOrNotFlag=((SYS_MAX_ACT_TASK_NUMBER>taskno)&&
(SYS_n7statStatItemValid(statItem))&&
(0!
=gSYSActTaskTable[taskno].resultData));
●【规如此24】循环、判断等语句中假设有较长的表达式或语句,如此要进展适当的分行,长表达式要在低优先级操作符处划分新行,操作符放在行尾。
[必须]
示例:
if((taskno (SYS_n7statStatItemValid(statItem))) { ...//programcode } //空行 for(i=0,j=0; (i (j { ...//programcode } //空行 for(i=0,j=0; (i i++,j++) { ...//programcode } ●【规如此25】假设函数的参数较长,如此要进展适当的分行。 [必须] 示例: rpr_n7statStrpare((UINT8*)&statObject, (UINT8*)&(gSysActTaskTable[taskno].statObject), sizeof(SYS_STAT_OBJECT)); rpr_n7statFlashActDuration(statItem,frameId*SYS_STAT_TASK_CHECK_NUMBER +index,statObject); ●【规如此26】不允许把多个短语句写在一行中,即一行只写一条语句。 [必须] 示例: 不正确的书写方式: rect.nLength=0;rect.nWidth=0; 正确的书写方式: rect.nLength=0; rect.nWidth=0; ●【规如此27】if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句局部无论多少都要加括号{}。 [必须] 示例: 不正确的书写方式: if(pUserCR==NULL)return; 正确的书写方式: if(NULL==pUserCR) { return; } ●【规如此28】在比拟表达式中,如果有常量,尽量把常量放在前面。 [建议] 这样,万一不小心把“==〞误敲成“=〞,就会通不过翻译,不致引起难查的问题。 ●【规如此29】程序块的分界符〔如C/C++语言的大括号‘{’和‘}’〕应各独占一行并且位于同一列,同时与引用它们的语句左对齐。 在函数体的开始、类的定义、结构的定义、枚举的定义以与if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 [建议] 示例: 本规如此的特例见2-7的说明局部。 不正确的书写方式: for(...){ ...//programcode } if(...) { ...//programcode } voidexample_fun(void) { ...//programcode } 正确的书写方式: for(...) { ...//programcode } if(...) { ...//programcode } voidexample_fun(void) { ...//programcode } switch(var) { caseOPTION1: break; caseOPTION2:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 软件 编程 要求 规范