<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                原則1: 遵守ANSIC和ISO C++國際標準 原則2: 將不符合國際標準的代碼與其他代碼分開 原則3: 運算時顯式轉換有符號和無符號類型 ?例子 unsigned long possitionA; unsigned long possitionB; //… long distance=long (possitionA) – long (possitionB); 原則4: 恰當使用位操作符 ?說明 只有絕對需要時,才使用位操作符,比如操作硬件寄存器時。 原則5:不要強制引用/指針指向尺寸不同的目標 ?例子 int badFunction (const char* pChar) { // 危險 int*PInt= (const int*)pChar; return (*PInt); } 原則6: 確保類型轉換不會丟失信息 ?例子 // 在大多數環境下,函數fork()的返回值大于short的長度,從而導致信息丟失 short pid=fork(); 原則7: 不要假設類型的存儲尺寸 ?說明 諸如整型、長整、短整、浮點數、雙精浮點數等的內存尺寸依系統不同而不同:而指向不同類型的指針也不能保證尺寸一定一樣()。 ?例子 / * * 假設整型的內存尺寸為4個字節,并據此申請內存,一旦 * 運行平臺改變,而新的運行平臺的整型尺寸不同(比如64 * 位平臺應是8個字節而不是4個字節),則需要直接修改代 * 碼,兼容性不好 * / buffer=new char[4*length]; / * * 讓編譯器在編譯時計算(通過sizeof())要靈活得多,因 * 為編譯器在計算時會根據不同平臺的要求給出相應的值 * / buffer=new char[sizeof(int)*length]; 原則8: 不要假設對象(等數據結構)的存儲結構 原則9: 注意運算溢出問題 ?例子 short abs (short n) { if (n<0) { n= -n; / * * 短整型的范圍是-32768到+32767,當n=-32768時, * -n就溢出了 * / } return n; } 原則10: 不要假設表達式的運算順序 ?例子 int x= ( (getchar()<<24) | (getchar()<<16) | (getchar()<<8) | (getchar() ) }; 原則11: 不要假設函數參數的計算順序 ?例子 int array[]={1,2,3,4}; int* PArray=&array[0]; / * * 不同編譯器,執行結果可能不同,有可能是 * function (1,2),也可能是function(2,1) * / function (*PArray++,*pArray++); 原則12: 注意數據文件的兼容性 ?說明 1) 字節排列順序: 有的系統從右向左組織字節,有的是從左向右:網絡傳輸數據也存在同樣問題:有的系統先傳數據的低字節,有的先傳高字節:(現在有標準函數可以做轉換,請查閱操作系統的相關文檔)。 2) 數據對齊: 為了保證訪問效率,數據存放也采用不同的對齊格式,比如字對齊或雙字對齊等,所以可能會有無用的空隙插在相鄰數據之間,編程者也需留神。 3) 行尾標志: 有的系統用回車做行尾(比如一般的UNIX系統),有的用回車換行兩個字符做行尾(比如Windows系列)。 原則13: 注意引用公共庫的兼容性 ?說明 盡量選擇兼容性好(支持多平臺)的庫。一般來說,標準庫要好于系統庫(操作系統提供的)或自定義庫,因為它們是經過精心設計以保證兼容性、高效性等一系列需求的。 原則14: 一定不要重新實現標準庫函數 ?例子 // 自己實現memcpy() void*memcpy (void*pDes,void*pSrc,size_t length) { //… } 原則15: 將所有#include的文件名視為大小寫敏感 原則16: 確保main()函數總是返回一個整型 ?例子 int main (int arp,char*argv[]) { int status=0; //… return status; // return appropriate status }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看