WindowsclientC/C++编程规范“建议”——前言
前言
工作中接触了非常多编程规范。当中最有意思的是,公司近期公布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:“该规范不适用于Windows平台开发”。看来这份规范是由做其它平台开发的同学制定的。那么做Windows开发的人都去哪儿了?后来因为工作须要,项目组须要我制定一份编程规范。这也是我这系列博客的由来。(转载请指明出于breaksoftware的csdn博客)
说到“规范“”,可能没多少人喜欢这种东西。相信非常多project师和我一样,都喜欢互联网的一些特质:自由、兼容并包。己所不欲勿施于人,所以我制定该“规范”时,也是抱着开放的态度——在”规范“之后加了”建议“二字。之后,我都会统称这些条例为“建议”。
假如说指定“规范”是easy的(事实上也不easy),那么最难的是让人遵从。一般假设我们想遵从什么,肯定要先想好我们为什么要遵从,我们遵从之有什么优点,能够给我们带来什么?相同我也是按着这个思维去制定这种“建议”,我将会从代码的可读性、可维护性、健壮性等角度,思考和编制该“建议”。希望这些“建议”能够协助大家写出更易读、更健壮、更好看的代码。
本“建议”条例分为下面若干等级:
|
【必须】 |
编码必须遵从。 |
|
【要求】 |
该规则能够很好的提高易读性、高效性和安全性。在特殊情况下,能够不遵从,可是须要给出不遵从的理由。 |
|
【推荐】 |
该规则能够部分提高易读性、高效性和安全性。在大部分情况下,须要遵从。 |
|
【建议】 |
该规则仅仅是作为建议,代码作者能够依据自己推断来决定。 |
本“建议”中样例代码,使用不同底色表示代码是否存在问题:
表示代码存在问题。
表示一种能够修复存在问题代码的方式。
本建议将分为下面若干模块。我会依据工作中新的发现和认识以及朋友们的建议,不定期更新这些条例。并将更新历史记录在该文的末尾,以便大家查阅。
模块:
- 函数 《WindowsclientC/C++编程规范“建议”——函数》
- 指针 《WindowsclientC/C++编程规范“建议”——指针》
- 函数调用 《WindowsclientC/C++编程规范“建议”——函数调用》
- 表达式和运算 《WindowsclientC/C++编程规范“建议”——表达式和运算》
- 结构 《WindowsclientC/C++编程规范“建议”——结构》
- 宏 《WindowsclientC/C++编程规范“建议”——宏》
- 文件 《WindowsclientC/C++编程规范“建议”——文件》
- 变量和常量 《WindowsclientC/C++编程规范“建议”——变量和常量》
- 风格 《WindowsclientC/C++编程规范“建议”——风格》
更新历史:
| 时间 | 内容 | 备注 |
| 2014.07.18 | 录入“建议”各项 | 初稿 |
WindowsclientC/C++编程规范“建议”——前言的更多相关文章
- WindowsclientC/C++编程规范“建议”——函数
1 函数 1.1 代码行数控制在80行及以内 等级:[要求] 说明:每一个函数的代码行数控制应该控制在80行以内.假设超过这个限制函数内部逻辑一般能够拆分.假设试图超过这个标准.请列出理由. 但理由不 ...
- Windows客户端C/C++编程规范“建议”——风格
本文来自:http://blog.csdn.net/breaksoftware/article/details/37935459 命名风格也非常适用于C# 9 风格 9.1 优先使用匈牙利命名法 等级 ...
- 51单片机C语言学习笔记8:单片机C51编程规范
1.单片机C51编程规范- 前言 为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范. 2.单片机C51编程规范-范围 本标准规定了程序设计人员进行程序设计时必须遵循的规范.本 ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- 中兴软件编程规范C/C++
Q/ZX 深圳市中兴通讯股份有限公司企业标准 (设计技术标准) Q/ZX 04.302.1–2003 软件编程规范C/C++ 20 ...
- JAVA 编程规范
软件开发技术规范 PTHINK-DEVELOP-JAVA-091010 Java语言编程规范 2009-10-10发布 2009-10-11实施 ...
- FangDD Java编程规范
我们采用<Oracle/Sun原生的Java编程规范>和<Google Java编程规范> Google Java编程风格指南 January 20, 2014 作者:Haws ...
- 国内大型的内部 C# 编程规范
C#编程规范 改动记录 Ver. No 发版日期 编制人 批准人 改动的说明 目 录 1 1.1 1.2 2 2.1 2.1.1 Pascal 大写和小写 2.1.2 Came ...
- C++语言编程规范
前言 这里参考了<高质量C++C 编程指南 林锐>.<google C++编程指南>以及<华为C++语言编程规范>编写了这份C++语言编程规范文档,以合理使用 C+ ...
随机推荐
- Java byte数据类型详解
public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b ...
- 【linux】内核make编译链接相关变量定义
欢迎转载,转载时请保留作者信息,谢谢. 邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:http:// ...
- cocos2d-x在win32和iOS、android下获取当前系统时间的方法
最近在游戏里要显示当前系统时间的功能,网上一搜很多写着获取的方法,大都是如下 struct cc_timeval now; CCTime::gettimeofdayCocos2d(&now, ...
- 注解在android中的使用
注解在android程序中的使用 何为注解: 在Java其中,注解又叫做"元数据",它为我们在源码中加入信息提供了一种形式化的方法.让我们能在以后的某个时间方便的使用这些数据.更确 ...
- 第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)
RelativeLayout相对布局 RelativeLayout是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布 ...
- Mac Eclipse+Maven+TestNg+ReportNg 生成测试报告
TestNG 是java 的单元测试框架,功能很强大,很方便,但是自动生成的测试报告有待改善,可以使用TestNg 自带的TestNG_xslt更改TestNG报告的样式,这里主要讲解ReportNg ...
- perl .*?和.*
redis01:/root# cat x2.pl my $str="212121a19823a456123"; if ($str =~/.*a(.*)23/){print &quo ...
- ajax后台处理返回json值
public ActionForward xsearch(ActionMapping mapping, ActionForm form, HttpServletRequest request, Htt ...
- ASP.NET - 获得客户端的 IP 地址
通常我们都通过下面的代码获得IP: REMOTE_ADDR 说明:访问客户端的 IP 地址. 此项信息用户不可以修改.如果真的给改了的话,你也和服务器连接不了了,服务器就是按照这个来与客户端建立连接并 ...
- ASP.NET从MVC5升级到MVC6
1-1)文件结构的升级(Area和Filter知识总结) - ASP.NET从MVC5升级到MVC6 ASP.NET从MVC5升级到MVC6 总目录 MVC5项目结构 带有Areas和Filter ...