⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 编程规范与范例(2).htm

📁 编程规范大全
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<P>chr = -1;<BR>exam = chr; // 编译器不产生告警,此时exam为0xFFFF。<BR>&amp;frac12; 5-12:尽量减少没有必要的数据类型默认转换与强制转换。<BR>&amp;frac12; 5-13:合理地设计数据并使用自定义数据类型,避免数据间进行不必要的类型转换。<BR>&amp;frac12; 5-14:对自定义数据类型进行恰当命名,使它成为自描述性的,以提高代码可读性。注意其命名方式在同一产品中的统一。<BR>说明:使用自定义类型,可以弥补编程语言提供类型少、信息量不足的缺点,并能使程序清晰、简洁。<BR>示例:可参考如下方式声明自定义数据类型。</P>
<P>下面的声明可使数据类型的使用简洁、明了。<BR>typedef unsigned char&nbsp; BYTE;<BR>typedef unsigned short WORD;<BR>typedef unsigned int&nbsp;&nbsp; DWORD;</P>
<P>下面的声明可使数据类型具有更丰富的含义。<BR>typedef float DISTANCE;<BR>typedef float SCORE;<BR>&amp;frac12; 5-15:当声明用于分布式环境或不同CPU间通信环境的数据结构时,必须考虑机器的字节顺序、使用的位域及字节对齐等问题 。<BR>说明:比如Intel CPU与68360 CPU,在处理位域及整数时,其在内存存放的“顺序”正好相反。<BR>示例:假如有如下短整数及结构。<BR>unsigned short int exam;<BR>typedef struct EXAM_BIT_STRU<BR>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Intel 68360 */<BR>&nbsp;&nbsp;&nbsp; unsigned int A1: 1; /* bit&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp; unsigned int A2: 1; /* bit&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp; */<BR>&nbsp;&nbsp;&nbsp; unsigned int A3: 1; /* bit&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp; */<BR>} EXAM_BIT;</P>
<P>如下是Intel CPU生成短整数及位域的方式。<BR>内存: 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; ...&nbsp; (从低到高,以字节为单位)<BR>exam&nbsp; exam低字节&nbsp; exam高字节</P>
<P>内存:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 bit&nbsp;&nbsp;&nbsp;&nbsp; 1 bit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 bit&nbsp;&nbsp;&nbsp; ...&nbsp; (字节的各“位”)<BR>EXAM_BIT&nbsp;&nbsp;&nbsp;&nbsp; A1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A3</P>
<P>如下是68360 CPU生成短整数及位域的方式。<BR>内存: 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; ...&nbsp; (从低到高,以字节为单位)<BR>exam&nbsp; exam高字节&nbsp; exam低字节</P>
<P>内存:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7 bit&nbsp;&nbsp;&nbsp;&nbsp; 6 bit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 bit&nbsp;&nbsp;&nbsp; ...&nbsp; (字节的各“位”)<BR>EXAM_BIT&nbsp;&nbsp;&nbsp;&nbsp; A1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A3</P>
<P>说明:在对齐方式下,CPU的运行效率要快得多。<BR>示例:如下图,当一个long型数(如图中long1)在内存中的位置正好与内存的字边界对齐时,CPU存取这个数只需访问一次内存,而当一个long型数(如图中的long2)在内存中的位置跨越了字边界时,CPU存取这个数就需要多次访问内存,如i960cx访问这样的数需读内存三次(一个BYTE、一个SHORT、一个BYTE,由CPU的微代码执行,对软件透明),所有对齐方式下CPU的运行效率明显快多了。<BR>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 32<BR>------- ------- ------- -------<BR>| long1 | long1 | long1 | long1 |<BR>------- ------- ------- -------<BR>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | long2 |<BR>------- ------- ------- --------<BR>| long2 | long2 | long2 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<BR>------- ------- ------- --------<BR>| ....&nbsp; <BR>&nbsp;<BR><A></A></P></DIV></TD></TR></TBODY></TABLE><FONT color=#ff0000></FONT>
<P align=right><A href="http://blog.21ic.org/blog.asp?name=cxjr" target=_blank><FONT color=#ff0000>如果你的‘芯’是一座作坊,我愿做那不知疲倦的程序匠。打造一流博客,我们每天在努力!</FONT></A></P><A href="http://blog.21ic.org/blog.asp?name=cxjr" target=_blank><FONT color=#ff0000></FONT></A><br><a name='comment'></a><table width='90%' border='0' align='center' cellspacing='0' cellpadding='0'> <tr> <td><strong>发表评论:</strong></tr></td></table>
<table width='90%' border='0' align='center' cellspacing='0' cellpadding='0'> <tr> <td><table align='left' width='100%' border='0' cellspacing='0' cellpadding='0'>
<form action='more.asp?name=cxjr&id=2755&action=addcomment_ic' method='post' name='commentform' onSubmit='return Verifycomment()'>
<tr><td height='25'  align='left'>昵称:<input name='UserName' type='text' id='UserName' size='15' maxlength='20' value=''></td></tr>
<tr><td height='25' align='left'>密码:<input name='Password' type='password' id='Password' size='15' maxlength='20' value=''> (游客无须输入密码)</td></tr>
<tr ><td height='25' align='left'  >验证码:<input name='GetCode' type='text' id='GetCode' size='12' maxlength='20' />&nbsp;<img src='inc/code.asp' width='40' height='10' border='0' /><td></tr><tr ><td height='25' align='left'  >主页:<input name='homepage' type='text' id='homepage' size='42' maxlength='50' value='http://'><td></tr><tr ><td height='25' align='left'  >标题:<input name='commenttopic' type='text' id='commenttopic' size='42' maxlength='50' value='回复:编程规范与范例(2)'><td></tr><tr height='200'><td ><INPUT type='hidden' name='edit' id='edit' value=''>
<link rel="STYLESHEET" type="text/css" href="images/edit.css">
<Script Src="images/DhtmlEdit.js"></Script>
<table id="oblog_Container" class="oblog_Body" height=100% width=350 cellpadding=1 cellspacing=0 border=0 >
  <tr> 
    <td  height="10"> <table cellpadding=0 cellspacing=0 >
        <tr class="yToolbar" ID="ExtToolbar0" > 
          <td> <select language="javascript" class="oblog_TBGen" id="FontSize" onchange="FormatText('fontsize',this[this.selectedIndex].value);">
              <option class="heading" selected>字号 
              <option value="1">1 
              <option value="2">2 
              <option value="3">3 
              <option value="4">4 
              <option value="5">5 
              <option value="6">6 
              <option value="7">7</option>
            </select> 
          <td class="oblog_Btn" TITLE="加粗" LANGUAGE="javascript" onclick="FormatText('bold', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/bold.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="斜体" LANGUAGE="javascript" onclick="FormatText('italic', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/italic.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="下划线" LANGUAGE="javascript" onclick="FormatText('underline', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/underline.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="取消格式" LANGUAGE="javascript" onclick="FormatText('RemoveFormat', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/removeformat.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="左对齐" NAME="Justify" LANGUAGE="javascript" onclick="FormatText('justifyleft', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/aleft.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="居中" NAME="Justify" LANGUAGE="javascript" onclick="FormatText('justifycenter', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/center.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="右对齐" NAME="Justify" LANGUAGE="javascript" onclick="FormatText('justifyright', '');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/aright.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="插入表情" LANGUAGE="javascript" onclick="oblog_foremot()" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/smiley.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td id="forecolor" name=forecolor class="oblog_Btn" TITLE="字体颜色" LANGUAGE="javascript" onclick="oblog_foreColor();" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/fgcolor.gif" WIDTH="16" HEIGHT="16" unselectable="on" > </td>
          <td id="backcolor" class="oblog_Btn" TITLE="字体背景颜色" LANGUAGE="javascript" onclick="oblog_backColor();ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn';> 
            <img class="oblog_Ico" src="images/fbcolor.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="插入超级链接" LANGUAGE="javascript" onclick="oblog_forlink();ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/wlink.gif" WIDTH="18" HEIGHT="18" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="去掉超级链接" LANGUAGE="javascript" onclick="FormatText('Unlink');ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn'; > 
            <img class="oblog_Ico" src="images/unlink.gif" WIDTH="16" HEIGHT="16" unselectable="on"> </td>
          <td class="oblog_Btn" TITLE="清理代码" LANGUAGE="javascript" onclick="oblog_CleanCode();ondrag='return false;'" onmouseover=this.className='oblog_BtnMouseOverUp'; onmouseout=this.className='oblog_Btn';> 
            <img class="oblog_Ico" src="images/cleancode.gif" WIDTH="16" HEIGHT="16"></td>
        </tr>
      </table></tr>
  <tr> 
    <td height="100%" id=PostiFrame> <iframe class="oblog_Composition" ID="oblog_Composition" MARGINHEIGHT="5" MARGINWIDTH="5" width="100%" height="100%"></iframe> </td>
     </tr>
  <tr >
    <td height="20"><TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0 width='100%'>
        <TR> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -