好的编程风格

1。关键字 if, while, for 后有一个空格

2。=号之类的双目运算符两侧都有空格

3。后缀运算符和操作数之间不加空格 例如 s.a , foo(argu) , a[i]

4。, 号和 ; 号之后要加空格,例如 foo(argu1, argu2) for (i=0; i<20; i++)

5。关于双目运算符两侧加空格可以灵活规定,例如 distance = sqrt(x*x + y*y),突出结合方式

6。如果程序需要换行,则要与上一行的表达式对齐 foo(sqrt(x*x + y*y))

                                                                          a[i-1] + b[i-1] + c[i-1])

7。较长的字符串可以段成多个字符串,并且要对齐

       printf(“This is such a long stenance that”

                  "it can not be leld\n”);  这个 print函数中的字符串就跟一个是一样的

8。有的人喜欢在变量定义语句中使用 Tab 字符,使变量名对齐。

      int            a, b;

      double    c;

9。关于缩进的规则 建议使用 tabstop=8,看起来层次非常明显  

10。if/else , while , do/while , for , switch 等语句块的大括号,不要单独占一行 , 建议 if () {} ,并且大括号

     之前要有个空格。

11。函数定义的大括号,{},要单独占一行。

12。switch语句中的case,default对齐写,

switch风格switch (c) {
case 'A':haha;break;
case 'B':haha;break;
default :oo;
}

13。代码中没个逻辑段落之间应该有一个空格分开,例如全局变量与函数之间,或者函数与函数之间。

14。一个函数内,语句列表很长,分组,例如变量定义为一组加空格,语句,return 0 是一组,加空格。

15。单行注释 /* comment */ 用空格把定界符和注释分开。多行注释风格如下

多行注释/**  Multi-line*  comment*/

16。使用注释的场合

  • 整个源文件顶部。说明此模块信息。顶头写,不缩进
  • 函数注释,说明此函数的功能,参数,返回值,错误等等,卸载函数定义上侧,和此函数之间不留空行,顶头写
  • 相对独立的语句注释,对这一组语句做特别说明,在语句组上侧,和此语句组不留空行,与当前与剧组缩进一致
  • 代码右侧简短注释,对当前代码行做特别说明,一般为单行注释,和代码之间至少用一个空格分开,最好能上下对齐。
    函数内的注释要尽可能少,写注释主要是未了 说明你的代码“能做什么”比如函数接口的定义,而不是为了说明“怎么做”,只要代码写的清楚,“怎么做”是一目了然的,除非是特别需要提醒注意的地方菜使用函数内的注释。
  • 复杂的结构体定义比函数更需要注释。
  • 复杂的宏和变量声明也需要注释。

17。标识符命名

  • 清晰明了,可以使用完整单词和易于理解的缩写,短的单词可以采用去元音的缩写形式,长的单词可以取单词的头几个字母形成缩写。
  • 内核编码风格规定变量,函数和类型采用全小写加下划线_的方式命名,常量(比如宏定义和枚举常量)采用全大写加下划线的方式,例如 函数 radix_tree_insert 类型名 struct radix_tree_root,常量RADIX_TREE_MAP_SHIFT等 ( 不要使用匈牙利命名法)C++中可以使用大小写字母,叫做CamelCase
  • 全局函数和全局变量的命名一定要详细,不惜多用几个单词多写几个下划线,例如radix_tree_insert,因为它们在整个项目的许多源文件中都会用到,必须让使用者明确这个函数或变量是干什么用的。局部变量和只在一个源文件中调用的内部函数的命名可以简略一些。但不能太短,尽量不要使用单个字母,只有一个例外:用 i , j , k 做循环变量可以。
  • 禁止使用汉语拼音做标识符。

18。函数 ( 每个函数都应该尽可能的简单,以下内容如果不能满足,考虑分割函数)

  • 实现一个函数只是为了做好一件事情
  • 函数内部缩进不易过多,一般最多不能超过4层。
  • 函数不要写的太长,建议在24行的标准终端上不超过两屏,太长会造成阅读困难。如果一个函数在概念上是简单的,只是长度长了一点,没关系。例如一个函数是由一个大的switch语句组成,其中有很多个case,这是可以的。
  • 执行函数就是执行一个动作,函数名通常应包含动词。例如 get_current
  • 比较重要的函数定义上侧必须加注释,说明函数的功能,参数,返回值,错误码等等
  • 另一个度量函数复杂度的办法是看有多少个局部变量,一般5-10个局部变量已经很多了。

19。indent工具(可以格式化代码的工具)参数 –kr –i8

转载于:https://www.cnblogs.com/moveofgod/archive/2012/09/28/2706132.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 时间戳 时区,三句话理解时区与时间戳

从不浪费时间的人&#xff0c;没有工夫抱怨时间不够。 —— 杰弗逊第一句话&#xff1a;时间戳时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字&#xff0c;叫时间戳。时间戳 指的就是Unix时间戳(Unix timestamp)。它也被称为Unix时间(Unix time)、PO…

windows下的diskpart指令彻底格式化清除U盘

参考&#xff1a;windows下的diskpart指令修复U盘分区 作者&#xff1a;丶PURSUING 发布时间&#xff1a;2021-02-02 09:38:55 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/113537038?spm1001.2014.3001.5501 参考&#xff1a;原文链接 作者&…

简述控制反转ioc_讲一下你理解的 DI 、IoC、DIP ?

作者 | 木小楠链接 |cnblogs.com/liuhaorain/p/3747470.html摘要面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中&#xff0c;OOD有一个重要的思想那就是依赖倒置原则(DIP)&#xff0c;并由此引申出IoC、DI以及Ioc容器等概念。本文我们将一起学习这些概…

Zimbra高级应用之-双向证书认证(一)

使用zimbra作为企业邮件服务器的公司&#xff0c;可能会遇到这样一种情况&#xff1a;使用用户名密码的传统认证方法&#xff0c;经常会发现有人恶意登录用户邮箱&#xff0c;采取暴力 破解&#xff0c;不断尝试登录密码。同时&#xff0c;简单密码组合很轻易被破解。从而在未经…

Redis学习与实战之字符串命令

字符串命令 一、基本字符串命令 1.基本字符串操作命令(设置、取值、删除、取长度) 命令名称命令功能执行时间复杂度Set为指定的一个键设置对应的值&#xff0c;如果已经存在&#xff0c;则直接覆盖原来的值O(1)Mset对多个键设置对应的值&#xff0c;如果值已经存在&#xff0c;…

html模糊遮罩层磨砂玻璃,常见的PPT背景:如何设计PPT背景?

第一种&#xff1a;纯色背景纯色背景分为两类&#xff0c;一种为黑白灰等“无色”背景&#xff0c;另一种就是彩色背景。黑白灰等无色背景&#xff0c;是安全的背景&#xff0c;容易配色&#xff0c;所以在使用上最多&#xff0c;如果没有色彩基础的朋友&#xff0c;建议还是用…

linux分文件编程、静态库与动态库

参考&#xff1a;linux静态库与动态库编程 作者&#xff1a;丶PURSUING 发布时间&#xff1a;2021-02-02 16:51:49 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/113539449?spm1001.2014.3001.5501 目录一、分文件编程的引入优点实现二、库的概念什…

十万个为什么儿童版_《虹猫蓝兔十万个为什么》上架爱奇艺奇巴布绘本馆

虹猫蓝兔绘本《虹猫蓝兔十万个为什么》上架爱奇艺奇巴布绘本馆全套专区。《虹猫蓝兔海底历险记》在爱奇艺PC端首页推广。红网时刻6月11日讯(记者 胡邦建 )今日&#xff0c;记者从湖南漫联卡通文化传媒有限公司获悉&#xff0c;该公司旗下的虹猫蓝兔绘本《虹猫蓝兔十万个为什么》…

获取${}中的值? 比如说var a=${date },无法取出date中的值

https://zhidao.baidu.com/question/2079297372778181268.html 转载于:https://www.cnblogs.com/DixinFan/p/9221953.html

GNU make manual 翻译( 一百四十九)

继续翻译 5.7.4 The --print-directory Option ------------------------------------If you use several levels of recursive make invocations, the -w or --print-directory option can make the output a lot easier to understand by showing each directory as make sta…

创文html5作品,【《创文故事》纪录短片入围作品展播之七】引路人

剧情简介&#xff1a;他只是一名普普通通的教师&#xff0c;却每天风雨无阻地为学生引导起上学放学的路。而这一切&#xff0c;没有一分钱&#xff0c;也没有一分利。他以身作则&#xff0c;用自己的行动感染了周围的人&#xff1a;从一开始的几个人&#xff0c;发展到现在几百…

树莓派外设开发基础(wiringPi库)

参考&#xff1a;树莓派外设开发基础篇 作者&#xff1a;丶PURSUING 发布时间&#xff1a;2021-02-05 18:20:53 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/113673019?spm1001.2014.3001.5501 目录外设开发综述及wiringPi库是什么如何获取如何使…

html仿百度页面代码_百度优化需要注意的4点

百度优化的技术很多&#xff0c;需要根据行业特点进行开拓和挖掘。还需要有多年的网络营销服务经验&#xff0c;进行网站分析、关键词分析、同行竞争分析&#xff0c;优化开始后监视网站流量数据。所以百度优化需要注意的4点如下&#xff1a;(1)页面优化。页面质量不高&#xf…

网页版计算器

网页版计算器 http://files.cnblogs.com/voidobject/%E7%BD%91%E9%A1%B5%E5%BD%A2%E5%BC%8F%E7%9A%84%E8%AE%A1%E7%AE%97%E5%99%A8.rar转载于:https://www.cnblogs.com/voidobject/archive/2012/10/04/2711642.html

android导航屏幕,发现具有软件导航栏的Android设备的真实屏幕尺寸(以像素为单位)...

我需要能够知道屏幕的确切大小,不包括软件导航栏.我正在使用andengine来制作游戏.我们希望全力支持新的Nexus系列(4,7和10)根据许多人指出的this page,软件导航栏的大小应为48dp.然后使用this优秀stackexchange帖子上的信息我收集了用于计算软件导航栏大小的公式应该是&#xf…

清除浮动小记,兼容Ie6,7

.clearfix { *zoom:1;}.clearfix:after{clear:both; display:block; height:0; visibility:hidden; line-height:0; content:\20;}转载于:https://www.cnblogs.com/chenhuichao/p/9223571.html

antd vue 多个下拉 联动_Antd下拉选择,自动匹配功能的实现

我就废话不多说了&#xff0c;大家还是直接看代码吧~placeholder"客户名称"showSearchoptionFilterProp"children"//自动匹配输入onChange{this.selectChange}>{this.state.selectCustomer}补充知识&#xff1a;antd select如何支持既能输入不存在的选项…

树莓派串口通信

目录相关概念简述半双工与全双工串口通信注重什么串口通信编程常用API初次使用需要配置树莓派和电脑串口之间读、写、交互接线编写程序其他简单了解为什么说linux一切皆文件查找文件是否存在相关概念 简述半双工与全双工 全双工允许通信双方同时互传数据&#xff1b;半双工不…

英文环境下中文输入法的设置

英文环境下使用ibus输入法 centos安装的时候已经选择了中文支持&#xff0c;输入法也已经安装&#xff0c;但在英文环境下面竟然无法使用中文输入法&#xff0c;解决办法记录于此&#xff0c; 1.安装ibus(centos6以后已经默认安装) #yum install ibus&#xff08;已经安装了中文…

html把实线变成虚线,Html5 Canvas 绘制虚线和实线的切换方法

场景应用&#xff1a;1需朋者说上事是础一发一开程和开数的目前间)、最开始默认绘制的都新直能分支调二浏页器朋代说&#xff0c;事刚是实线。var canvas document.getElementById("canvas");var context canvas.getContext("2d");context.strokeStyle …