推荐写C++代码风格。看似easy。坚持不易,且写且珍惜!

--陈国林

1. 版本号和版本号声明

版本号和版本号文件声明位于头文件和定义文件的开头,主要内容

(1)版本号信息

(2)文件名、标识符、摘要

(3)当前的版本、作者、改动日期

(4)版本号历史信息

2. 程序版式

(1)在每一个类声明之后、每一个函数定义之后都要加上一个空行

(2)一行代码仅仅做一件事情

(3)if、for、while、do各占一行。运行语句不得紧跟其后,不论运行语句多少都加上{}

(4)尽量在定义一个变量的时候就初始化该变量

(5)程序分界符{和}必须独占一行而且左对齐

(6)代码长度不宜超过70至80个字符。超过之后拆成新行。操作符放在新行之首

(7)应该把*和&修饰符靠近变量名,比如int *x = &a

(8)类中建议先把public类型写在前面,再写private类型

3. 命名规则

(1)类名和函数名要用大写字母开头单词组成

(2)变量和參数要使用小写字母开头单词组成

(3)常量全用大写字母,用下划线切割单词

(4)静态变量加上前缀s_。比如static int s_num

(5)全局变量加上前缀g_,比如int g_num

(6)类的数据成员前面加上m_,能够和成员函数和静态成员区分开

4. 表达式和基本语句

(1)不可将bool值直接和true、false、0、1进行比較。

假设flag是bool类型,直接if(flag)这样推断就可以

(2)整型变量应该要直接和0比較,比方num为整型变量。if(num == 0)

(3)不可将浮点型变量直接用 == 和 !=来进行比較

(4)指针变量要直接和NULL进行比較,比如p为指针变量,if(p != NULL)

5. 函数设计

(1)函数參数的书写要完整,假设没有參数,用void填补

(2)假设參数有指针,而且该指针仅仅是读取作用应该要加上const,防止指针意外改动

(3)在函数的内部入口应该要对參数的有效性进行检查

(4)函数的功能要单一。不要设计多用途的函数

(5)函数体的规模要小。控制在50行代码

6. 内存管理

(1)malloc和new申请内存之后,应该要马上检查指针是否为NULL,防止使用指针值为NULL的内存。

(2)要对数组和动态内存赋初值。防止将未初始化的内存作为右值使用

(3)用free或delete释放了内存之后。马上将指针指向NULL,防止产生野指针。

版权声明:本文博主原创文章,博客,未经同意不得转载。

高效C++规划的更多相关文章

  1. 规划设计系列3 | SketchUp+实景三维,方案现状一起看

    将SketchUp中建立的模型与实景三维模型进行集成,既可以充分发挥实景三维在地理空间记录方面的优势,又可以去除SketchUp在周边环境设计上的不足. 同时借助Wish3D Earth丰富的场景浏览 ...

  2. Android程序员接下来的路该如何走?

    随着“5G”(第五代移动通信技术)商用进程越来越快,各个芯片和终端厂商们都已经开始布局准备,想必智能手机会是消费者最先能够接触到5G的重要终端,而和其相辅相生的移动互联网也势必会有新的发展. 但是和行 ...

  3. 看完知乎上500条答案,我为大家整理了这21个B站学习类UP主

    原文之前发在我的知乎,转载请注明出处. ​ 虽然,今天算法文章还没更新┏(゜ロ゜;)┛,但还是溜过来跑个题~ 之前看到了博客上有小伙伴在分享自己的B站资源,才突然意识到自己其实也积攒了很多优秀UP的资 ...

  4. 三年Android开发,月薪一万二,不敢跳槽,每天都很焦虑

    在我们的身边,存在一个普遍现象:很多人从事Android开发工作多年,走过的弯和坎,不计其数,经历的心酸难与外人道也.可是技术确难以提升.止步不前,薪资也只能看着别人水涨船高,自己却没有什么起色. 虽 ...

  5. Android开发失业50天,面了10家公司,唯二的offer也主动拒了

    最近在论坛看到这样一个帖子: 坐标深圳. 4 月上旬公司解散.(现在想想好像是假解散,真裁员) 这一个半月以来,从朋友内推,到拉勾.Boss 直聘,再到猎聘.智联招聘. 从开始的精准投递,到后来的海投 ...

  6. Web GIS 航拍实现的智慧园区数字孪生应用

    前言 随着智慧城市建设的不断发展,智慧园区作为智慧城市的先行区,其覆盖区域越来越大,产值越来越集中,对于园区数字化建设和智能化管理的诉求也愈加强烈.园区数字化管理是以实现园区多维度业务数据汇聚.融合. ...

  7. 要学Java,怎么高效地学习,怎么规划

    要学Java,怎么高效地学习,怎么规划?   题主是一个个例,99%的人(包括我自己)都没有题主这样的经历,也很难提出具有很强参考性的java学习建议.我倒是之前面试过一个跟题主有点类似的人,拿出来分 ...

  8. IT基础架构规划方案二(计算机系统与机房规划规划)

    计算机系统规划       服务器硬件选型规划方案       根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...

  9. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

随机推荐

  1. 强大的PropertyGrid

    PropertyGrid, 做工具一定要用这东西..... 把要编辑的对象看成类的话, 全部要编辑的属性就是成员 嗯嗯, 近期看了几眼Ogitor, 它对于PropertyGrid的使用就非常不错 全 ...

  2. nginx subrequest演示示例程序

    只有简单subrequest应用演示示例. nginx.conf文件: #user nobody; worker_processes 1; #error_log logs/error.log; #er ...

  3. 怎么做fastreport使用离线数据源

    近期使用做项目发现fastreport使用在线数据源.紧密耦合的数据库连接字符串.在部署稍加注意.easy错误.因此,是否想到脱机使用的数据源. 官方参考: watermark/2/text/aHR0 ...

  4. Google 开源项目的风格指南

    谷歌C++代码风格指南.农业所需的代码.更难得的是不FQ,决定性的最爱!! . http://zh-google-styleguide.readthedocs.org/en/latest/google ...

  5. 简单ESB的服务架构

    简单ESB的服务架构 这几个月一直在修改架构,所以迟迟没有更新博客. 新的架构是一个基于简单esb的服务架构,主要构成是esb服务注册,wcf服务,MVC项目构成. 首先,我门来看一看解决方案, 1. ...

  6. Java调用Lua(转)

    Java 调用 Lua app发版成本高,覆盖速度慢,覆盖率页低.一些策略上的东西如果能够从服务端控制会方便一些.所以考虑使用Lua这种嵌入式语言作为策略实现,Java则是宿主语言. 总体上看是一个模 ...

  7. 重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表

    原文:重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表 [源码下载] 重新想象 Windows 8 S ...

  8. 【原创】leetCodeOj --- Merge k Sorted Lists 解题报告

    题目地址: https://oj.leetcode.com/problems/merge-k-sorted-lists/ 题目内容: /** * Definition for singly-linke ...

  9. CentOS7 已安装telnet维修

    今天搞下 Centos 7 以下升级 openssl 和 openssh ,顺便说下安装 telnet # 设备 telnet 避 ssh 无法登录 yum -y install xinetd tel ...

  10. hdu4288 Coder(段树+分离)

    主题链接: huangjing 题意: 题目中给了三个操作 1:add x 就是把x插进去  2:delete x 就是把x删除 3:sum 就是求下标%5=3的元素的和. 另一个条件是插入和删除最后 ...