freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

microsoftc編碼規(guī)范(已修改)

2025-04-28 04:16 本頁面
 

【正文】 Microsoft C編碼規(guī)范本文檔描述了微軟一站式代碼示例庫項(xiàng)目組所采納的關(guān)于本地 C++ 和 .NET (C )代碼的編程風(fēng)格指導(dǎo)規(guī)范。 鳴謝本文檔的每一章節(jié)都應(yīng)該感謝Dan Ruder 微軟Principal Escalation Engineer 。 Dan 對本文檔進(jìn)行了斟字酌句的查閱,并根據(jù)其20余年的編程經(jīng)驗(yàn)提供了大量的珍貴評論 。我很榮幸能與他共事。 我同樣感謝微軟的四位經(jīng)理,感謝他們對該項(xiàng)目的一貫支持。他們是Vivian Luo,Allen Ding,F(xiàn)elix Wu 和 Mei Liang。 同時,如果沒有如下一站式代碼示例庫項(xiàng)目的關(guān)鍵成員的辛勤付出,本文檔必定不會具有現(xiàn)在的技術(shù)深度以及完整度,我在這里要感謝他們:Hongye Sun Jie Wang Ji Zhou Michael Sun Kira Qian Linda LiuAllen Chen YiLun Luo Steven Cheng WenJun Zhang本文檔部分章節(jié)參考自一些微軟產(chǎn)品組的編程規(guī)范。感謝他們的慷慨共享。本編程規(guī)范在不斷改善。如果您發(fā)現(xiàn)某些最佳實(shí)踐或者話題并沒有涵蓋在本文檔中,請告知我們一站式示例代碼庫項(xiàng)目組 ,以不斷充實(shí)改善本文檔。我期待著您的參與。J聲明本編程規(guī)范文檔以“如是”提供,無論明示或暗示都不包含任何形式保證,但并不限制適用于特殊目的的默認(rèn)擔(dān)保。 當(dāng)您編寫VC++/VC/ 代碼時,敬請參考或使用本文檔。但是,我們希望您能通過onecode@,或給出任何改進(jìn)建議。 目錄1 概覽 1 原則和主旨 1 術(shù)語 22 通用編程規(guī)范 3 明確和一致 3 格式和風(fēng)格 3 庫的使用 5 全局變量 5 變量的聲明和初始化 6 函數(shù)的聲明和調(diào)用 7 語句 8 枚舉 9 空格 14 大括號 15 注釋 17 代碼塊 263 C++ 編程規(guī)范 27 編譯器選項(xiàng) 27 文件和結(jié)構(gòu) 29 命名規(guī)范 30 指針 34 常量 34 類型轉(zhuǎn)換 35 Sizeof 36 字符串 37 數(shù)組 38 宏 39 函數(shù) 40 結(jié)構(gòu)體 43 類 44 COM 50 動態(tài)分配 51 錯誤和異常 52 資源清理 55 控制流 584 .NET 編碼規(guī)范 61 類庫開發(fā)設(shè)計(jì)規(guī)范 61 文件和結(jié)構(gòu) 61 程序集屬性 61 命名規(guī)范 61 常量 65 字符串 65 數(shù)組和集合 67 結(jié)構(gòu)體 69 類 70 命名空間 74 錯誤和異常 74 資源清理 77 交互操作 90Page 471 概覽 本文檔為一站式示例代碼庫項(xiàng)目組所使用的C++ 以及 .NET 編碼規(guī)范 。該規(guī)范源自于產(chǎn)品開發(fā)過程中的經(jīng)驗(yàn),并在不斷完善。如果您發(fā)現(xiàn)一些最佳實(shí)踐或者話題并沒有涵蓋在本文檔中,請聯(lián)系我們一站式示例代碼庫項(xiàng)目組 ,以不斷充實(shí)完善本文檔。任何指導(dǎo)準(zhǔn)則都可能會眾口難調(diào)。本規(guī)范的目的在于幫助社區(qū)開發(fā)者提高開發(fā)效率,減少代碼中可能出現(xiàn)的bug,并增強(qiáng)代碼的可維護(hù)性。萬事開頭難,采納一個不熟悉的規(guī)范可能在初期會有一些棘手和困擾,但是這些不適應(yīng)很快便會消失,它所帶來的好處和優(yōu)勢很快便會顯現(xiàn),特別是在當(dāng)您接手他人代碼時。 原則和主旨高質(zhì)量的代碼示例往往具有如下特質(zhì):1. 易懂 – 代碼示例必須易讀且簡單明確。它們必須能展示出重點(diǎn)所在。示例代碼的相關(guān)部分應(yīng)當(dāng)易于重用。示例代碼不可包含多余代碼。它們必須帶有相應(yīng)文檔說明。2. 正確性 – 示例代碼必須正確展示出其欲告知使用者的重點(diǎn)。代碼必須經(jīng)過測試,且可以按照文檔描述進(jìn)行編譯和運(yùn)行。3. 一致性 – 示例代碼應(yīng)該按照一致的編程風(fēng)格和設(shè)計(jì)來保證代碼易讀。 同樣的,不同代碼示例之間也應(yīng)當(dāng)保持一致的風(fēng)格和設(shè)計(jì),使使用者能夠很輕松的結(jié)合使用它們。一致性將我們一站式示例代碼庫優(yōu)良的品質(zhì)形象傳遞給使用者,展示出我們對于細(xì)節(jié)的追求。4. 流行性 – 代碼示例應(yīng)當(dāng)展示現(xiàn)行的編程實(shí)踐,例如使用 Unicode,錯誤處理,防御式編程以及可移植性。示例代碼應(yīng)當(dāng)使用當(dāng)前推薦的運(yùn)行時庫和API函數(shù),以及推薦的項(xiàng)目和生成設(shè)置。5. 可靠性 – 代碼示例必須符合法律,隱私和政策標(biāo)準(zhǔn)和規(guī)范。不允許展示入侵性或低質(zhì)的編程實(shí)踐,不允許永久改變機(jī)器狀態(tài)。所有的安裝和執(zhí)行過程必須可以被撤銷。6. 安全性 示例代碼應(yīng)該展示如何使用安全的編程實(shí)踐 :例如最低權(quán)限原則,使用運(yùn)行時庫函數(shù)的安全版本,以及SDL推薦的項(xiàng)目設(shè)置。 合理使用編程實(shí)踐,設(shè)計(jì)和語言特性決定了示例代碼是否可以很好滿足上述特性。本編程規(guī)范致力于幫助您創(chuàng)建代碼示例以使使用者能夠作為最佳實(shí)踐來效仿和學(xué)習(xí)。 術(shù)語在整個文檔中,會有一些對于標(biāo)準(zhǔn)和實(shí)踐的推薦和建議。一些實(shí)踐是非常重要的,必須嚴(yán)格執(zhí)行,另一些指導(dǎo)準(zhǔn)則并不一定處處適用,但是會在特定的場景下帶來益處。為了清楚陳述規(guī)范和實(shí)踐的意圖,我們會使用如下術(shù)語。術(shù)語意圖理由254。 一定請...該規(guī)范或?qū)嵺`在任何情況下都應(yīng)該遵守。如果您認(rèn)為您的應(yīng)用是例外,則可能不適用。該規(guī)范用于減少bug。253。 一定不要...不允許應(yīng)用該規(guī)范或?qū)嵺`。254。 您應(yīng)該...該規(guī)范和實(shí)踐適用于大多數(shù)情況。該規(guī)范用于統(tǒng)一編程風(fēng)格,保持一致和清晰的風(fēng)格。253。 您不應(yīng)該..不應(yīng)該應(yīng)用該規(guī)范或?qū)嵺`,除非有合理的理由。254。 您可以…該標(biāo)準(zhǔn)和規(guī)范您可以按需應(yīng)用。該規(guī)范可用于編程風(fēng)格,但不總是有益的。 2 通用編程規(guī)范這些通用編程規(guī)范適用于所有語言 – 它們對代碼風(fēng)格,格式和結(jié)構(gòu)提供了全局通用的指導(dǎo)。 明確性和一致性254。 一定請確保代碼的明確性,易讀性和透明性。編程規(guī)范致力于確保代碼是易懂和易維護(hù)的。沒有什么勝于清晰、簡潔、自描述的代碼。254。 一定請確保 一旦應(yīng)用了某編程規(guī)范,需在所有代碼中應(yīng)用,以保持一致性。 格式和風(fēng)格253。 一定不要使用制表符。不同的文字編輯器使用不同的空格來生成制表符 ,這就帶來了格式混亂。所有代碼都應(yīng)該使用4個空格來表示縮進(jìn)??梢耘渲肰isual Studio 文字編輯器,以空格代替制表符 。254。 您應(yīng)該 限制一行代碼的最大長度。 過長的代碼降低了代碼易讀性 。為了提高易讀性,將代碼長度設(shè)置為78列。若78列太窄,可以設(shè)置為86或者90。Visual C 示例:254。 一定請 在您的代碼編輯器中使用定寬字體,例如 Courier New。 庫的使用253。 一定不要 引用不必要的庫,包括不必要的頭文件,或引用不必要的程序集。注重細(xì)節(jié)能夠減少項(xiàng)目生成時間,最小化出錯幾率, 并給讀者一個良好的印象。 全局變量254。 一定請 盡量少用全局變量。 為了正確的使用全局變量,一般是將它們作為參數(shù)傳入函數(shù)。永遠(yuǎn)不要在函數(shù)或類內(nèi)部直接引用全局變量,因?yàn)檫@會引起一個副作用:在調(diào)用者不知情的情況下改變了全局變量的狀態(tài)。這對于靜態(tài)變量同樣適用。如果您需要修改全局變量,您應(yīng)該將其作為一個輸出參數(shù),或返回其一份全局變量的拷貝。 變量的聲明和初始化 254。 一定請?jiān)谧钚〉?,包含該局部變量的作用域塊內(nèi)聲明它。一般,如果語言允許,就僅在使用前聲明它們,否則就在作用域塊的頂端聲明。254。 一定請 在聲明變量時初始化它們。254。 一定請 在語言允許的情況下,將局部變量的聲明和初始化或賦值置于同一行代碼內(nèi)。這減少了代碼的垂直空間,確保了變量不會處在未初始化的狀態(tài)。// C sample:string name = 。int val = 。253。 一定不要 在同一行中聲明多個變量 。推薦每行只包含一句聲明,這樣有利于添加注釋,也減少歧義。例如 Visual C++ 示例,Good:CodeExample *pFirst = NULL。 // Pointer of the first element.CodeExample *pSecond = NULL。 // Pointer of the second element.Bad:CodeExample *pFirst, *pSecond。后一個代碼示例經(jīng)常被誤寫為:CodeExample *pFirst, pSecond。這種誤寫實(shí)際上等同于:CodeExample *pFirst。CodeExample pSecond。 函數(shù)的聲明和調(diào)用 函數(shù)或方法的名稱,返回值,參數(shù)列表可以有多種形式。原則上應(yīng)該都將這些置于同一行代碼內(nèi)。如果帶有過多參數(shù)不能置于一行代碼,可以進(jìn)行換行:多個參數(shù)一行或者一個參數(shù)一行。將返回值置于函數(shù)或方法名稱的同一行。例如,單行格式:// C function call sample:hr = DoSomeFunctionCall(param1, param2, param3)。多行格式:// C function call sample:hr = DoSomeFunctionCall(param1, param2, param3, param4, param5)。將參數(shù)列表置于多行代碼時,每一個參數(shù)應(yīng)該整齊排列于前一個參數(shù)的下方。第一個類型/參數(shù)對置于新行行首,并縮進(jìn)一個制表符寬度。函數(shù)或方法調(diào)用時的參數(shù)列表同樣需按照這一格式。 // C++ / C sample:hr = DoSomeFunctionCall( hwnd, param1, param2, param3, param4, param5)。254。 一定請 將參數(shù)排序,并首先將輸入?yún)?shù)分組,再將輸出參數(shù)放置最后。在參數(shù)組內(nèi),按照能夠幫助程序員輸入正確值的原則來將參數(shù)排序。比如,如果一個函數(shù)帶有2個參數(shù), “l(fā)eft” 和 “right” ,將 “l(fā)eft” 置于 “right” 之前,則它們的放置順序符合其參數(shù)名。當(dāng)設(shè)計(jì)一系列具有相同參數(shù)的函數(shù)時,在各函數(shù)內(nèi)使用一致的順序。比如,如果一個函數(shù)帶有一個輸入類型為句柄的參數(shù)作為第一參數(shù),那么所有相關(guān)函數(shù)都應(yīng)該將該輸入句柄作為第一參數(shù)。 代碼語句253。 一定不要 在同一行內(nèi)放置一句以上的代碼語句。 這會使得調(diào)試器的單步調(diào)試變得更為困難。Good: // C sample:a = 1。b = 2。Bad:// C sample:a = 1。 b = 2。 枚舉254。 一定請 將代表某些值集合的強(qiáng)類型參數(shù),屬性和返回值聲明為枚舉類型。254。 一定請?jiān)诤线m的情況下盡量使用枚舉類型,而不是靜態(tài)常量或 “define” 值 。枚舉類型是一個具有一個靜態(tài)常量集合的結(jié)構(gòu)體。如果遵守這些規(guī)范,定義枚舉類型,而不是帶有靜態(tài)常量的結(jié)構(gòu)體,您便會得到額外的編譯器和反射支持。Good: // C sample:public enum Color{ Red, Green, Blue}Bad: // C sample:public static class Color{ public const int Red = 0。 public const int Green = 1。 public const int Blue = 2。}253。 一定不要 使用公開集合作為枚舉 (例如操作系統(tǒng)版本,您親朋的姓名)。254。 一定請 為簡單枚舉提供一個0值枚舉量,可以考慮將之命名為 “None”。如果這個名稱對于特定的枚舉并不合適,可以自行定義為更準(zhǔn)確的名稱。// C sample:public enum Compression{ None = 0, GZip, Deflate}253。 一定不要 來檢查枚舉范圍。首先,它加載反射和大量類型元數(shù)據(jù),代價極其昂貴。第二,它存在版本的問題。 Good: // C sample:if (c || c ){ throw new ArgumentOutOfRangeException(...)。}Bad: // C sample:if (!(typeof(Color), c)){ throw new InvalidEnumArgumentException(...)。} 標(biāo)志枚舉 標(biāo)志枚舉用于對枚舉值進(jìn)行位運(yùn)算的支持。標(biāo)志枚舉通常用于表示選項(xiàng)。254。 一定要 將 應(yīng)用于標(biāo)志枚舉。 一定不要 將此屬性用于簡單枚舉 。254。 一定請 利用2進(jìn)制強(qiáng)大的能力,因?yàn)樗梢宰杂傻倪M(jìn)行位異或運(yùn)算。舉例,// C sample:[Flags]public enum AttributeTargets { Assembly = 0x0001, Class = 0x0002, Struct = 0x0004, ...}254。 您應(yīng)該 提供一些特殊的枚舉值,以便進(jìn)行常見的標(biāo)志枚舉的組合運(yùn)算。 位運(yùn)算屬于高級任務(wù),所以在簡單任務(wù)中無需使用它們。 便是標(biāo)志枚舉特殊值的一個示例 。然而,如果一個標(biāo)志枚舉中的某些值組合起來是非法的,您就不應(yīng)該創(chuàng)建這樣的標(biāo)志枚舉。// C sample:[Flags]public enum FileAccess{ Read = 0x1, Write = 0x2, ReadWrite = Read | Write}253。 您不應(yīng)該 在標(biāo)志枚舉中使用0值,除非它代表 “所有標(biāo)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1