高效C++编程

简介: 推荐编写C++的代码风格,看似容易,坚持不易,且写且珍惜!  --陈国林 1. 版本和版本声明 版本和版本文件声明位于头文件和定义文件的开头,主要内容 (1)版本信息 (2)文件名称、标识符、摘要 (3)当前的版本号、作者、修改日期 (4)版本历史信息   2.


推荐编写C++的代码风格,看似容易,坚持不易,且写且珍惜!  --陈国林

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,防止产生野指针。



目录
相关文章
|
8月前
|
存储 缓存 C++
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
C++ 标准模板库(STL)提供了一组功能强大的容器类,用于存储和操作数据集合。不同的容器具有独特的特性和应用场景,因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C++ 的开发者来说,了解这些容器的基础知识以及它们的特点是迈向高效编程的重要一步。本文将详细介绍 C++ 常用的容器,包括序列容器(`std::vector`、`std::array`、`std::list`、`std::deque`)、关联容器(`std::set`、`std::map`)和无序容器(`std::unordered_set`、`std::unordered_map`),全面解析它们的特点、用法
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
|
12月前
|
安全 程序员 编译器
【实战经验】17个C++编程常见错误及其解决方案
想必不少程序员都有类似的经历:辛苦敲完项目代码,内心满是对作品品质的自信,然而当静态扫描工具登场时,却揭示出诸多隐藏的警告问题。为了让自己的编程之路更加顺畅,也为了持续精进技艺,我想借此机会汇总分享那些常被我们无意间忽视却又导致警告的编程小细节,以此作为对未来的自我警示和提升。
1250 105
|
存储 C++ UED
【实战指南】4步实现C++插件化编程,轻松实现功能定制与扩展
本文介绍了如何通过四步实现C++插件化编程,实现功能定制与扩展。主要内容包括引言、概述、需求分析、设计方案、详细设计、验证和总结。通过动态加载功能模块,实现软件的高度灵活性和可扩展性,支持快速定制和市场变化响应。具体步骤涉及配置文件构建、模块编译、动态库入口实现和主程序加载。验证部分展示了模块加载成功的日志和配置信息。总结中强调了插件化编程的优势及其在多个方面的应用。
1125 186
|
8月前
|
存储 机器学习/深度学习 编译器
【C++终极篇】C++11:编程新纪元的神秘力量揭秘
【C++终极篇】C++11:编程新纪元的神秘力量揭秘
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
212 0
|
8月前
|
存储 算法 C++
深入浅出 C++ STL:解锁高效编程的秘密武器
C++ 标准模板库(STL)是现代 C++ 的核心部分之一,为开发者提供了丰富的预定义数据结构和算法,极大地提升了编程效率和代码的可读性。理解和掌握 STL 对于 C++ 开发者来说至关重要。以下是对 STL 的详细介绍,涵盖其基础知识、发展历史、核心组件、重要性和学习方法。
|
8月前
|
存储 安全 算法
深入理解C++模板编程:从基础到进阶
在C++编程中,模板是实现泛型编程的关键工具。模板使得代码能够适用于不同的数据类型,极大地提升了代码复用性、灵活性和可维护性。本文将深入探讨模板编程的基础知识,包括函数模板和类模板的定义、使用、以及它们的实例化和匹配规则。
|
存储 搜索推荐 C++
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器
194 2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
|
11月前
|
消息中间件 存储 安全
|
存储 算法 C++
C++提高篇:泛型编程和STL技术详解,探讨C++更深层的使用
文章详细探讨了C++中的泛型编程与STL技术,重点讲解了如何使用模板来创建通用的函数和类,以及模板在提高代码复用性和灵活性方面的作用。
178 2
C++提高篇:泛型编程和STL技术详解,探讨C++更深层的使用