<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                【79.1 命名規范的必要。】 一個大型的項目程序,涉及到的變量常量非常多,各種變量常量眼花繚亂,名字不規范就無法輕松掌控全局。若能一開始就遵守特定的命名規范,則普天之下,率土之濱,都被你牢牢地掌控在手里,天下再也沒有難維護的代碼。本節教給大家的是我多年實踐所沿用的命名規范和習慣,它不是唯一絕對的,只是給大家參考,大家今后也可以在自己的實踐中慢慢總結出一套適合自己的命名規范和習慣。 【79.2 普通變量常量的命名規范和習慣。】 在C51編譯器的平臺下,unsigned char ,unsigned int ,unsigned long三類常用的變量代表了“無符號的8位,16位,32位”,這類型的變量前綴分別加“u8,u16,u32”來表示。但是這種類型的變量還分全局變量和局部變量,為了有所區分,就在全局變量前加“G”來表示,不帶“G”的就默認是局部變量。比如: unsigned char Gu8Number; //Gu8就代表全局的8位變量 unsigned int Gu16Number; //Gu16就代表全局的16位變量 unsigned long Gu32Number; //Gu32就代表全局的32位變量 void HanShu(unsigned char u8Data) //u8就代表局部的8位變量 { unsigned char u8Number; //u8就代表局部的8位變量 unsigned int u16Number; //u16就代表局部的16位變量 unsigned long u32Number; //u32就代表局部的32位變量 } 全局變量和局部變量繼續往下細分,還分“靜態”和“非靜態”,為了有所區分,就在前面增加“ES”或“S”來表示,“ES”代表全局的靜態變量,“S”代表局部的靜態變量。比如: static unsigned char ESu8Number; //ESu8就代表全局的8位靜態變量 static unsigned int ESu16Number; //ESu16就代表全局的16位靜態變量 static unsigned long ESu32Number; //ESu32就代表全局的32位靜態變量 void HanShu(unsigned char u8Data) //u8就代表局部的8位變量 { static unsigned char Su8Number; //Su8就代表局部的8位靜態變量 static unsigned int Su16Number; //Su16就代表局部的16位靜態變量 static unsigned long Su32Number; //Su32就代表局部的32位靜態變量 } 剛才講的只是針對“變量”,如果是“常量”,則前綴加“C”來表示,不管是全局的常量還是局部的常量,都統一用“C”來表示,不再刻意區分“全局常量”和“靜態常量”,比如: const unsigned char Cu8Number=1; //Cu8就代表8位常量,不刻意區分“全局”和“局部” const unsigned int Cu16Number=1; //Cu16就代表16位常量,不刻意區分“全局”和“局部” const unsigned long Cu32Number=1; //Cu32就代表32位常量,不刻意區分“全局”和“局部” void HanShu(unsigned char u8Data) //u8就代表局部的8位變量 { const unsigned char Cu8Number=1; //Cu8就代表8位常量,不刻意區分“全局”和“局部” const unsigned int Cu16Number=1; //Cu16就代表16位常量,不刻意區分“全局”和“局部” const unsigned long Cu32Number=1; //Cu32就代表32位常量,不刻意區分“全局”和“局部” } 【79.3 循環體變量的命名規范和習慣。】 循環體變量是一個很特定場合用的變量,為了突出它的特殊,這類變量在命名上用單個字母,可以不遵守命名規范,這里的“不遵守命名規范”就是它的“命名規范”,頗有道家“無為就是有為”的韻味,它是命名界的另類。比如: unsigned char i; //超越了規則約束的循環體變量,用單個字母來表示。 unsigned long k; //超越了規則約束的循環體變量,用單個字母來表示。 void HanShu(unsigned char u8Data) //u8就代表局部的8位變量 { unsigned int c; //超越了規則約束的循環體變量,用單個字母來表示。 for(c=0;c<5;c++) //用在循環體的變量 { u8Data=u8Data+1; //u8就代表局部的8位變量 } for(i=0;i<5;i++) //用在循環體的變量 { u8Data=u8Data+1; //u8就代表局部的8位變量 } for(k=0;k<5;k++) //用在循環體的變量 { u8Data=u8Data+1; //u8就代表局部的8位變量 } } 【79.4 數組的命名規范和習慣。】 數組有四種應用場合,一種是普通數組,一種是字符串,一種是表格,一種是信息。在命名上分別加入后綴“Buffer,String,Table,Message”來區分,但是它們都是數組。比如: unsigned int Gu16NumberBuffer\[5\]; //后綴是Buffer。16位的全局變量數組。用在普通數組。 unsigned char Gu8NumberString\[5\]; //后綴是String。8位的全局變量數組。用在字符串。 //根據原理圖得出的共陰數碼管字模表 code unsigned char Cu8DigTable\[\]=//后綴是Table。這里的code是代表C51的常量(類似const)。 { 0x3f, //0 序號0 0x06, //1 序號1 0x5b, //2 序號2 0x4f, //3 序號3 0x66, //4 序號4 0x6d, //5 序號5 0x7d, //6 序號6 0x07, //7 序號7 0x7f, //8 序號8 0x6f, //9 序號9 0x00, //不顯示 序號10 }; void HanShu(unsigned char u8Data) //u8就代表局部的8位變量 { unsigned char u8NumberMessage\[5\]; //后綴是Message。8位的局部變量數組。用在信息。 } 【79.5 指針的命名規范和習慣。】 指針的前綴加“p”來區分。再往下細分,指針有全局和局部,有“靜態”和“非靜態”,有“8位寬度”和“16位寬度”和“32位寬度”,有變量指針和常量指針。比如: unsigned char \*pGu8NumberString; //pGu8代表全局的8位變量指針 void HanShu(const unsigned char \*pCu8Data) //pCu8代表局部的8位常量指針 { unsigned char \*pu8NumberBuffer; //pu8代表局部的8位變量指針 static unsigned int \*pSu16NumberBuffer; //pSu16代表局部的16位靜態變量指針 static unsigned long \*pSu32NumberBuffer; //pSu32代表局部的32位靜態變量指針 } 【79.6 結構體的命名規范和習慣。】 結構體的前綴加“t”來區分。再往下細分,指針有全局和局部,有“靜態”和“非靜態”,有結構體變量和結構體指針。比如: struct StructSignData //帶符號的數 { unsigned char u8Sign; //符號 0為正數 1為負數 unsigned long u32Data; //數值 }; struct StructSignData GtNumber; //Gt代表全局的結構體變量。 void HanShu(struct StructSignData \*ptData) //pt代表局部的結構體指針 { struct StructSignData tNumber; //t代表局部的結構體變量。 static struct StructSignData StNumber; //St代表局部的靜態結構體變量。 } 【79.7 宏常量的命名規范和習慣。】 所謂“宏常量”往往是指用#define語句定義的常量。宏常量的所有字符都用大寫字母。比如: \#define DELAY\_TIME 30 //宏常量所有字符都用大寫字母。DELAY\_TIME代表延時的時間。 void HanShu(void) { delay(DELAY\_TIME); //相當于delay(30),這里的delay代表某個延時函數(這里沒有具體寫出來) } 【79.8 首字符用大寫字母以及下劃線“\_”的靈活運用。】 兩個以上的英文單詞連在一起命名時,每個單詞的首字符用大寫,其余用小寫,這樣可以把每個單詞“斷句”開來,方便閱讀。如果遇到兩個英文單詞連在一起不好“斷句”的情況(比如某個英文單詞全部是大寫字母的專用名詞),只要在兩個英文單詞之間插入下劃線“\_”就可以清晰的“斷句”了。比如: unsigned long Gu32GetFileLength; //GetFileLength寓意“獲取某個文件的長度”。 unsigned char Gu8ESD\_Flag; //ESD是專業用名詞,代表“靜電釋放”的意思。用下劃線“\_”斷句。
                  <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>

                              哎呀哎呀视频在线观看