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

正文內容

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

2025-04-28 04:16 本頁面
 

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