C++代码书写规范
(声明:本博客参考自简书网页https://www.jianshu.com/p/c1b6cf190e0b 以下内容是读后结合本人编程经验分享我对代码规范的理解和建议)
一、前述
代码作为程序员与计算机沟通的工具,其重要性不言而喻,但在漫漫的编程长路中,不可能一直是自主编程的,小组合作是必不可少的。因此,代码的规范性由此就显得十分重要,倘若你书写了不规范、给人以直观丑陋感,那么你的搭档就难以修改你书写的代码,甚至会拒绝合作。因此,作为代码初学者,掌握必要的代码规范知识是最基本的,本博客以c++为例子,举例分析代码规范。
二、实例分析
1. 善用空格与空行
①正确使用空格和空行能给人以舒适感,而不是一连串紧密的代码给人的压迫感。
函数名之后不要留空格,否则形参表示不明显
如:int Fun1(int x) //建议书写
int Fun2 (int x) //不建议书写
②if、 for、 while等判断和循环使用到的关键字之后应留一个空格再跟左括号‘ (’,以突出关键字。
如: if (i = 0)
③定义变量的逗号之后要留空格。在for语句中的分号其后要留空格。
如:
for (i=0; i<5; i++) int a, b;
④赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“ =”、“ +=” “>=”、“ <=”、“ +”、“ *”、“ %”、“ &&”、“ <<”、 “ ^”等前后应当加空格。
如: a = b; a += 10;
⑤在实现函数时,函数与函数之间应加空行,以方便区分两个不同的函数。
如:
void Fun1(int x) { //do something } void Fun2(double y) { //do something }
PS: 过分使用空格也不是好的代码规范,应适当使用,如这样就不合适:for( int i = 0 ; i < 10 ; i ++ ) 这样滥用空格给人很空的感觉。
2. 注意每行代码的内容
一行代码就做一件事情,不要将所有功能压缩至一行语句中。
如:
int main() { int num; double count; while (num <= 100) num++; return 0; //不好的代码规范 } int main() { int num; double count; while(num <= 100) { num++; } return 0; }
3. 变量、函数名命名规范
①变量,函数,文件命名最好采用英文单词或词组,不要使用拼音,或者无意义的a b c之类的,用英文单词或其缩写命名能起到在缺少注释的情况下能够给阅读者起提示作用。
②类名和函数名用大写字母开头能和普通变量区分开。
个人喜爱使用的命名规范:双驼峰命名法:
双驼峰命名法就是当变量名由多个单词组合而成时,第一个单词以小写字母开始,第二、三、四……N个单词的首字母大写。例如:myFirstWord,这样的变量名看上去就像骆驼峰一样此起彼伏,既美观,又能突出由词组命名的变量,减小冲突命名的可能性。
4. 适时添加注释
有时候读代码会跟不上编程者的思维,若代码旁边没有注释,就难以理解其意思,因此适当添加注释不仅能够让自己回忆某行、某段代码的用处,还能方面阅读者理解。
建议在每个函数名的后面添加对该函数的功能进行解释的注释,同时建议在main函数的每一个循环也最好添加注释,让阅读者明白循环的作用。
以上是我阅读参考博客的读后感和建议,希望自己能够好好记住这些规范,书写优美又实用的代码。
原文地址:https://www.cnblogs.com/besthunterhj/p/11455022.html
- 由一道面试题来了解进程间的通信
- 【教程】简单教程:用Python解决简单的水果分类问题
- 通过html<map>标签给图片加链接
- Windows下安装Scikit-Learn
- 解决后台无法进入提示DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value
- 一文教你实现skip-gram模型,训练并可视化词向量
- 如何将文章列表用<li>分两列显示
- 面试题之走楼梯问题
- 最长公共子序列与最长公共子串
- nodejs 的序列化与反序列化
- dedecms获取当前文章所在栏目URL
- highcharts 时间少8小时问题
- 【干货】python玩转微信:微信好友统计信息全掌握
- 使用Visual Studio 调试断点不起作用的问题解决办法 调试Revit CAD 不能进入断点
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 有赞 GO 项目单测、集成、增量覆盖率统计与分析
- RSA--通过模和指数加密模板--无填充
- 有赞发号器多机房方案
- python爬虫以及后端开发--实用加密模板整理
- APP脱壳方法三
- Flink Checkpoint 原理流程以及常见失败原因分析
- Docker原理之 - OverlayFS设计与实现
- 有赞零售跨平台打印库方案
- [Go] Golang练习项目-GO语言实现快速排序-第一个数作为基准更容易理解
- 有赞移动基础设施建设的实践和思考
- 大数据理论篇HDFS的基石——Google File System
- 6. 二十不惑,ObjectMapper使用也不再迷惑
- 接口自动化对比工具实践
- 什么?Java9这些史诗级更新你都不知道?Java9特性一文打尽!
- 利用 Arthas 精准定位 Java 应用 CPU 负载过高问题