Microsoft C#编码规范 本文档描述了微软一站式代码示例库项目组所采纳的关于本地 C++ 和 .NET (C# 和VB.NET)代码的编程风格指导规范。 鸣谢
本文档的每一章节都应该感谢Dan Ruder- 微软Principal Escalation Engineer 。Dan 对本文档进行了斟字酌句的查阅,并根据其20余年的编程经验提供了大量的珍贵评论。我很荣幸能与他共事。
我同样感谢微软的四位经理,感谢他们对该项目的一贯支持。他们是Vivian Luo,Allen Ding,Felix Wu和Mei Liang。
同时,如果没有如下一站式代码示例库项目的关键成员的辛勤付出,本文档必定不会具有现在的技术深度以及完整度,我在这里要感谢他们:
Hongye Sun Jie Wang Ji Zhou Michael Sun Kira Qian Linda Liu Allen Chen Yi-Lun Luo Steven Cheng Wen-Jun Zhang
本文档部分章节参考自一些微软产品组的编程规范。感谢他们的慷慨共享。
本编程规范在不断改善。如果您发现某些最佳实践或者话题并没有涵盖在本文档中,请告知我们一站式示例代码库项目组,以不断充实改善本文档。我期待着您的参与。?
声明
本编程规范文档以“如是”提供,无论明示或暗示都不包含任何形式保证,但并不限制适用于特殊目的的默认担保。
当您编写VC++/VC#/VB.NET 代码时,敬请参考或使用本文档。但是,我们希望您能通过onecode@microsoft.com告知我们您正在使用本文档,或给出任何改进建议。
目录
1 概览 ......................................................................................................................................... 1
1.1 原则和主旨 ................................................................................................................................................ 1 1.2 术语 ............................................................................................................................................................ 2
2 通用编程规范 .......................................................................................................................... 3
2.1 明确和一致 ................................................................................................................................................ 3 2.2 格式和风格 ................................................................................................................................................ 3 2.3 库的使用 .................................................................................................................................................... 5 2.4 全局变量 .................................................................................................................................................... 5 2.5 变量的声明和初始化 ................................................................................................................................ 5 2.6 函数的声明和调用 .................................................................................................................................... 6 2.7 语句 ............................................................................................................................................................ 7 2.8 枚举 ............................................................................................................................................................ 7 2.9 空格 .......................................................................................................................... 错误!未定义书签。 2.10 大括号 ...................................................................................................................................................... 11 2.11 注释 .......................................................................................................................................................... 12 2.12 代码块 ...................................................................................................................................................... 19
3 C++ 编程规范 ........................................................................................... 错误!未定义书签。
3.1 编译器选项 .............................................................................................................. 错误!未定义书签。 3.2 文件和结构 .............................................................................................................. 错误!未定义书签。 3.3 命名规范 .................................................................................................................. 错误!未定义书签。 3.4 指针 .......................................................................................................................... 错误!未定义书签。 3.5 常量 .......................................................................................................................... 错误!未定义书签。 3.6 类型转换 .................................................................................................................. 错误!未定义书签。 3.7 Sizeof ........................................................................................................................ 错误!未定义书签。 3.8 字符串 ...................................................................................................................... 错误!未定义书签。 3.9 数组 .......................................................................................................................... 错误!未定义书签。 3.10 宏 .............................................................................................................................. 错误!未定义书签。 3.11 函数 .......................................................................................................................... 错误!未定义书签。 3.12 结构体 ...................................................................................................................... 错误!未定义书签。 3.13 类 .............................................................................................................................. 错误!未定义书签。 3.14 COM .......................................................................................................................... 错误!未定义书签。 3.15 动态分配 .................................................................................................................. 错误!未定义书签。