C++代码规范

为了防止头文件被重复引用,应当用ifndef / define /endif结构产生预处理块
类的成员函数声明与定义分开,不论函数体大小
不提倡使用全局变量,尽量不要在头文件中出现像extern int value 这类声明
变量一般不要定义在 .h 头文件中,可以只是声明

头文件的作用: 1.通过头文件来调用库功能,用户只要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现,编译器会从库中提取相应的代码。
2.头文件能加强类型的安全检查

空行

在每个类声明后,每个函数定义结束后都要加空行。

在一个函数体内,逻辑上密切相关的语句不加空行,其他地方应加空行分隔

代码行

一行代码只做一件事情,只定义一个变量或只写一条语句,便于阅读和写注释

循环语句自占一行,不论执行语句有多少,都要加花括号

尽可能在定义变量的同时初始化变量,变量的初始化很容易被忘记

代码行内的空格

关键字之后要留空格,以突出关键字

函数之后不要留空格,以与关键字区别

分号,逗号后都要留空格

对于表达式较长的for 和if 语句,为紧凑起见,可以去掉一些空格

长行拆分

代码不要太长,长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首,注释是对代码的提示,而不是文档

注释位置应与被描述的位置相邻,在代码上方或右方,不可在下方

当代码较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读

类的版式

类的版式:类可以将数据和函数封装在一起,函数表示类提供的服务。书写时,public类函数写前面,主张以行为为中心,首先考虑类应提供什么样的服务。

命名规则

标识符应当直观,望文生义

长度应当符合:min-length && max-information

命名规则尽量与所用的操作系统或开发工具风格保存一致,windows中采用大小写混排的方式,unix采用小写加下划线的组合

程序中不要出现仅靠大小写区分的相似标识符

程序中尽量不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同,并不会发生语法错误,但会使人误解

**变量的名字应当使用 “名词” 或者 “形容词+名词" **

全局函数的名字应当使用 "动词” 或者 “动词+名词”,类的成员函数应当只使用动词,被省略掉的名词就是对象本身

用正确的反义词组命名具有互斥意义的变量或相反动作的函数等

尽量避免名字中出现名字编号,除非逻辑上的确需要编号,这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字

简单的Windows命名规则

类名和函数名用大写字母开头的单词组合而成

变量和参数用小写字母开头的单词组合而成

常量全用大写的字母,用下划线分割单词

静态变量加前缀 s_(表示static)

如果不得已需要全局变量,则全局变量加前缀g_ (表示global)

类的数据成员加前缀m_(表示member),这样可以避免数据成员与成员函数的参数同名

运算符的优先级:为了防止产生歧义并提高可读性,应当用括号确定表达式的操作顺序。

应当将整形变量用==或!=直接与0比较

不可将浮点变量用或!=与任何数字比较,千万要留意,无论时float还是double类型的变量,都有精度限制,输入0.0可能实际是0.0000001,一定要避免将浮点变量用或!=与数字比较,应该设法转化成>=或<=形式

指针变量与0值比较:应当将指针变量用或!=与NULL比较,指针变量的零值是空(记为NULL),尽管NULL的值与0相同,但是两者意义不同,p与NULL显示比较,强调p是指针变量
有时候会看到if(NULL
p),是程序员为了防止将if(p==NULL)写成if(p=NULL),而有意把p和NULL颠倒。NULL不能被赋值,编译器会报错。

提高循环体效率的基本办法是降低循环体的复杂性:
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,减少CPU跨切循环层的次数
C++代码规范

如果循环体内存在逻辑判断,并且循环次数很大,先将逻辑判断移到循环体外面。
C++代码规范
4-4(c)的程序比示例 4-4(d)多执行了 N-1 次逻辑判断。并且由 于前者老要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环进 行优化处理,降低了效率。如果 N 非常大,好采用示例 4-4(d)的写法,可以提高 效率。如果 N 非常小,两者效率差别并不明显,采用示例 4-4(c)的写法比较好,因 为程序更加简洁。

原文链接: https://www.cnblogs.com/ymd12103410/p/9622806.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++代码规范

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/280977

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 上午5:19
下一篇 2023年2月15日 上午5:20

相关推荐