📄 华为软件编程规范和范例.htm
字号:
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">7
</SPAN><SPAN style="FONT-FAMILY: 黑体">可测性</SPAN></P></TD>
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=a1><SPAN lang=EN-US>36</SPAN></P></TD></TR>
<TR style="page-break-inside: avoid">
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">8
</SPAN><SPAN style="FONT-FAMILY: 黑体">程序效率</SPAN></P></TD>
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=a1><SPAN lang=EN-US>40</SPAN></P></TD></TR>
<TR style="page-break-inside: avoid">
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">9
</SPAN><SPAN style="FONT-FAMILY: 黑体">质量保证</SPAN></P></TD>
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=a1><SPAN lang=EN-US>44</SPAN></P></TD></TR>
<TR style="page-break-inside: avoid">
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">10
</SPAN><SPAN style="FONT-FAMILY: 黑体">代码编辑、编译、审查</SPAN></P></TD>
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=a1><SPAN lang=EN-US>50</SPAN></P></TD></TR>
<TR style="page-break-inside: avoid">
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">11
</SPAN><SPAN style="FONT-FAMILY: 黑体">代码测试、维护</SPAN></P></TD>
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=a1><SPAN lang=EN-US>52</SPAN></P></TD></TR>
<TR style="page-break-inside: avoid">
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">12
</SPAN><SPAN style="FONT-FAMILY: 黑体">宏</SPAN></P></TD>
<TD
style="PADDING-RIGHT: 0cm; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; WIDTH: 234pt; PADDING-TOP: 0cm"
vAlign=top width=312>
<P class=a1><SPAN lang=EN-US>53</SPAN></P></TD></TR></TBODY></TABLE></DIV><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体"><BR
style="PAGE-BREAK-BEFORE: always" clear=all></SPAN>
<DIV class=Section2>
<H1><SPAN lang=EN-US style="FONT-FAMILY: 'Courier New'">1 </SPAN><SPAN
style="FONT-FAMILY: 宋体">排版</SPAN></H1>
<P class=a3 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm"><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">¹</SPAN><SPAN lang=EN-US>1-1</SPAN><SPAN
style="FONT-FAMILY: 宋体">:程序块要采用缩进风格编写,缩进的空格数为</SPAN><SPAN
lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体">个。</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
style="FONT-FAMILY: 宋体">说明:对于由开发工具自动生成的代码可以有不一致。</SPAN></P>
<P class=a3 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm"><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">¹</SPAN><SPAN lang=EN-US>1-2</SPAN><SPAN
style="FONT-FAMILY: 宋体">:相对独立的程序块之间、变量说明之后必须加空行。</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
style="FONT-FAMILY: 宋体">示例:如下例子不符合规范。</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">if (!valid_ni(ni))</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">{</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"> ... // program
code</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">}</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">repssn_ind =
ssn_data[index].repssn_index;</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">repssn_ni =
ssn_data[index].ni;</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"></SPAN> </P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
style="FONT-FAMILY: 宋体">应如下书写</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">if (!valid_ni(ni))</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">{</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"> ... // program
code</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">}</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"></SPAN> </P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">repssn_ind =
ssn_data[index].repssn_index;</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">repssn_ni =
ssn_data[index].ni;</SPAN></P>
<P class=a3 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm"><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'">¹</SPAN><SPAN lang=EN-US>1-3</SPAN><SPAN
style="FONT-FAMILY: 宋体">:较长的语句(</SPAN><SPAN lang=EN-US>>80</SPAN><SPAN
style="FONT-FAMILY: 宋体">字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
style="FONT-FAMILY: 宋体">示例:</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">perm_count_msg.head.len
= NO7_TO_STAT_PERM_COUNT_LEN</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">
+ STAT_SIZE_PER_FRAM * sizeof( _UL );</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'"></SPAN> </P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">act_task_table[frame_id
* STAT_TASK_CHECK_NUMBER + index].occupied</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">
= stat_poi[index].occupied;</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'"></SPAN> </P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">act_task_table[taskno].duration_true_or_false</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">
= SYS_get_sccp_statistic_state( stat_item );</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'"></SPAN> </P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">report_or_not_flag
= ((taskno < MAX_ACT_TASK_NUMBER)</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">
&& (n7stat_stat_item_valid (stat_item))</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'">
&& (act_task_table[taskno].result_data != 0));</SPAN></P><B><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 'Courier New'"><BR
style="PAGE-BREAK-BEFORE: always" clear=all></SPAN></B>
<P class=a3 style="MARGIN-LEFT: 0cm; TEXT-INDENT: 0cm"><SPAN lang=EN-US
style="FONT-WEIGHT: normal; FONT-FAMILY: 'Times New Roman'">¹</SPAN><SPAN
lang=EN-US>1-4</SPAN><SPAN
style="FONT-FAMILY: 宋体">:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
style="FONT-FAMILY: 宋体">示例:</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">if ((taskno <
max_act_task_number)</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"> &&
(n7stat_stat_item_valid (stat_item)))</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">{</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"> ... // program
code</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">}</SPAN></P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'"></SPAN> </P>
<P class=MsoNormal
style="MARGIN-LEFT: 24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align=left><SPAN
lang=EN-US style="FONT-FAMILY: 'Courier New'">for (i = 0, j = 0; (i <
BufferKeyword[word_index].word_length)</SPAN></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -