C++编码规范(一)

华为C/C++编码规范 3.5 命名规范必须与所使用的系统风格保持一致, 并在同一项目中统一, 比如采用UNIX的全小写加下划线的风格或大小写混排的方式, 不要使用大小写与下划线混排的方式, 用作特殊标识如标识成员变量或全局变量的m_ 和g_ , 其后加上大小写混排的方式是允许的。注:(1)由于留空格所产生的清晰性是相对的, 所以, 在已经非常清晰的语句中没有必要再留空格, 如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格, 多重括号间不必加空格, 因为在C/C++语言中括号已经是最清晰的标志了。 阅读详情

1      文件组织.............................................................................................................................. 2

1.1       文件结构....................................................................................................................... 2

1.1.1    版权和版本的声明................................................................................................... 2

1.1.2    头文件的结构........................................................................................................... 2

1.1.3    头文件的作用........................................................................................................... 5

1.2       目录结构....................................................................................................................... 5

2      命名规则.............................................................................................................................. 5

2.1       总则............................................................................................................................... 5

2.2       文件............................................................................................................................... 7

2.3       变量............................................................................................................................... 7

2.4       自定义类型................................................................................................................. 10

2.5       函数............................................................................................................................. 10

3      注释.................................................................................................................................... 11

3.1       总则............................................................................................................................. 11

3.2       文档注释..................................................................................................................... 11

3.3       源程序文件................................................................................................................. 12

3.4       类................................................................................................................................. 12

3.5       函数............................................................................................................................. 13

3.6       变量............................................................................................................................. 14

3.7       语句............................................................................................................................. 14

4      程序的版式....................................................................................................................... 15

4.1       空白符......................................................................................................................... 15

4.1.1    空行......................................................................................................................... 15

4.1.2    空格......................................................................................................................... 15

4.1.3    对齐......................................................................................................................... 15

4.2       表达式......................................................................................................................... 15

4.2.1    运算符的优先级..................................................................................................... 15

4.2.2    复合表达式............................................................................................................. 15

4.2.3    逻辑表达式............................................................................................................. 16

4.3       基本语句..................................................................................................................... 17

4.3.1    代码行..................................................................................................................... 17

4.3.2    长行拆分................................................................................................................. 18

4.3.3    修饰符的位置......................................................................................................... 18

4.4       条件语句..................................................................................................................... 18

4.5       循环语句..................................................................................................................... 19

4.6       常量............................................................................................................................. 21

4.7     类中的常量............................................................................................................... 21

4.8       函数............................................................................................................................. 22

4.8.1    参数......................................................................................................................... 22

4.8.2    返回值..................................................................................................................... 24

4.8.3    函数内部实现......................................................................................................... 27

4.8.4    构造函数、析构函数与赋值函数......................................................................... 29

4.8.5    重载......................................................................................................................... 29

4.8.6    使用断言................................................................................................................. 29

4.8.7    其它......................................................................................................................... 31

4.9       内存管理..................................................................................................................... 31

4.10     类................................................................................................................................. 32

5      可移植性............................................................................................................................ 34

6      提高程序的效率............................................................................................................... 35

6.1      一些有益的建议......................................................................................................... 35

1           文件组织

1.1        文件结构

1.1.1   版权和版本的声明

版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:

(1)版权信息。

(2)文件名称,标识符,摘要。

(3)当前版本号,作者/修改者,完成日期。

(4)版本历史信息。

//Copyright (c) 2002-2005,   中国地质大学

// All rights reserved.

//

// 文件名称:输入文件名,如filename.h

// 文件标识:见配置管理计划书

// 摘    要:简要描述本文件的内容

//

// 当前版本:1.1

// 作    者:输入作者(或修改者)名字

// 完成日期:2002年7月20日

//

// 取代版本:1.0

// 原作者  :输入原作者(或修改者)名字

// 完成日期:2002年5月10日

 

示例1-1 版权和版本的声明

1.1.2   头文件的结构

头文件由三部分内容组成:

(1)头文件开头处的版权和版本声明(参见示例1-1)。

(2)预处理块。

(3)函数和类结构声明等。

假设定义文件的名称为 graphics.cpp,定义文件的结构参见示例1-2。

 

// 版权和版本声明见示例1-1,此处省略。

 

#include “graphics.h” // 引用头文件

…

 

// 全局函数的实现体

void Function1(…)

{

…

}

 

// 类成员函数的实现体

void Box::Draw(…)

{

…

}

示例1-2 C++/C定义文件的结构

C++ 规范编码书籍合集 C++编码规范 Google_Cpp_Style_guide_CN 腾讯C++编码规范 金山C++代码规范 研发中心_产品一部_C++编码规范 立即下载

相关推荐

Win11安装Office2021

windows11安装office2021。

1万+

C++编码规范

1 通用原则 7 原则1.1:对外部输入进行校验 7 原则1.2:禁止在日志中保存口令、密钥 8 原则1.3:及时清除存储在可复用资源中的敏感信息 8 原则1.4:正确使用经过验证的安全的标准加密算法 8 原则1.5:遵循最小权限原则 9 原则1.6:删除或修改没有效果的代码 9 原则1.7:删除或修改没有使用到的变量或值 9 2 字符串操作安全 10 规则2.1:确保有足够的空间存储字符串的字符数据和’\0’结束符 10 规则2.2:字符串操作过程中确保字符串有’\0’结束符 11 规则2.3:把数据复制

qq_41306849的博客 2300

手把手式介绍 ADNI 影像数据下载

1.搜索 1.1登录 打开ADNI的官网:http://adni.loni.usc.edu/,进入下面的界面。 点击 DATA&SMPLES 下的 ACCESS DATA AND SAMPLES,如下图。 页面跳转以后点击中间的“LOGIN”,这时会跳出一个新的界面,然后在右上角输入自己的帐号、密码即可。如果没有权限可以跳转到第2部分看看如何申请权限。 登录以后选择DOWNLOAD下的 Image Collections就是搜索下载影像数据,其他还有一些学习测试数据和遗传数据。 1.2 sea

永远想不起来更新的博客 1万+

C/C++编程规范整理

一、基本准备工作 1、设计工程目录结构 (1)基本原则: 【1】工程本身的文件、项目编译生成的中间文件放一个文件夹; 【2】最终生成的目标文件单独放一个文件夹; 【3】如果有工程依赖的库文件等单独放一个文件夹; 【4】用户代码文件放单独一个文件夹,或者将头文件和源文件单独分开放置; 【5】用户代码文件里面如果有比较重要的功能模块单独放一个文件夹,如陀螺仪,气压计,光感,音乐,灯效,图...

dream_feng的博客 3万+

ADS学习笔记 2. 低噪声放大器设计

ADS学习笔记 2. 低噪声放大器设计。设计了一个中心频率433MHz,增益18.206dB,NF=0.134dB,S11带宽较好的低噪声放大器

u014087103的博客 9509

基于 YOLOv26 的金属表面缺陷检测系统:智能视觉质检方案

摘要: 基于YOLOv26的金属表面缺陷检测系统采用深度学习技术,实现对划痕、裂纹、腐蚀等8类常见缺陷的自动化检测。系统通过数据增强预处理和YOLOv26模型的高精度识别能力,具备多类别分类、实时推理和强鲁棒性特点,适用于不同金属材质与光照条件。架构包含数据采集、预处理、YOLOv26检测和后处理模块,代码实现采用PyTorch框架,支持训练数据增强与标准化处理,为工业质检提供高效智能解决方案。

一键难忘的博客 589

C/C++编码规范

C++编码规范 写出漂亮易读的程序是很重要的,不仅方便自己查看,也方便别人修改。于是我参考了网上别人的优秀博文(文章后面会贴出出处),对原内容进行了些修改,并整理成此文章。以下的编码规则适用于C++游戏服务端,当然,其它语言也可以参考该规则。 一、文档的结构 头文件用来声明,cpp文件用来定义。声明和定义分开,可以让代码更清晰、方便阅读,同时,如果在某些场合,代码不能公开,只向用户提供头文件和二进制的库即可。通常这样的情况下,头文件和源文件是在不同目录的,按照实际意义区分目录,一个目录内超过10个文.

weixin_42158742的博客 5908

PCL点云库入门(第1讲)——PCL库简介和安装(Win10/11+VS2019+PCL 1.12.0)

PCL,全称为,即点云库,是一个专注于2D/3D图像和点云处理的大型开源项目。该项目最初由斯坦福大学的杰出计算机视觉专家Radu博士及其团队开发和维护,经过十余年的发展,目前(2024年12月)已更新至1.14.1版本。PCL点云库集成了众多尖端的点云处理算法,这些算法不仅包括基础的滤波、特征估计、表面重建、配准、模型拟合和分割等,还涵盖了更高级的功能,如点云数据的语义理解、场景解析以及动态环境下的实时处理。这些算法能够对含有噪声的点云数据进行有效过滤,去除异常值;

qq_36812406的博客 1万+

c++编码规范_编码规范 | 大佬们都是怎样写代码的?(一)

入职前被老板叮嘱要学习编码规范,第一反应是有点懵懵的这玩意还需要单独去学呀?我平时代码写的应该也挺规范呀?必须要学吗?工作必须严格遵守编码规范吗?查了一些相关网站,又问了几位已经入职的大佬后,得到了这样的回复:EMM酱紫呀,看起来还是挺重要的,那就要学一下啦!!01编码规范是什么?style guide:「编码规范」又称「风格指南」是一种将不同程序员写的代码努力保持一致的风格的方法,当所有代码均保...

weixin_39875516的博客 228

【Verilog基础】CDC跨时钟域方法,典型异步电路设计之脉冲同步器(上)

【Verilog基础】CDC跨时钟域方法,典型异步电路设计之脉冲同步器(上):慢时钟域到快时钟域!

悟已往之不谏 知来者之可追 1545

Agent驱动电商运营:从选品到售后的全链路革新

在当今竞争激烈的电商市场中,传统的电商运营模式面临着诸多挑战。从选品到售后,每个环节都需要大量的人力投入和专业知识。选品需要深入了解市场趋势和消费者需求,营销需要精准定位目标用户,客服需要24小时响应用户咨询。这些工作不仅耗时耗力,而且容易受到人为因素的影响,导致效率低下和成本高企。AI Agent是一种能够感知环境、做出决策并采取行动的智能系统。感知能力:能够获取和处理环境信息。决策能力:能够根据感知到的信息做出决策。行动能力:能够执行决策,对环境产生影响。学习能力。

AI 领航者的博客 354

C++编码规范系列 一

6.Declare destruction virtual in polymophic base classes. c++中明确指出,如果derived class对象被一个base class指针持有,通过这个base class指针去删除对象,并且这个base class带有一个non-virtual析构函数,结果是未定义的,实际情况下,通常是对象的derived 部分没有被销毁。所以任何c...

yumiano0的博客 182

CDR插件开发之CPG插件004 - 认识VGCore并编译生成你的第一个CPG文件

上篇文章中,讲到了使用VS2019编译CDR类型库 VGCoreAuto.tlb,编译后得到了vgcoreauto.tlh和vgcoreauto.tli两个文件。本文将对这两个文件说明,并演示通过标准的libid形式来导入CDR类型库,在这个过程中,穿插一些VS2019的使用技巧(删除目录、复制工程、打开项目或解决方案、修改解决方案名称、修改项目名称等),使读者循序渐进,逐步提高对VS2019工具的熟练程度,最后通过修改项目属性配置,生成第一个CPG文件。

Zebe 2984

c++编码规范_高性能编码规范驳斥(一)

准备写一个系列,驳斥一下这些年我整理/设计的高性能编码规范里,哪些是没有意义的。为什么会没有意义呢?有的原因可能是规则本身是有问题的,有的原因可能是编译器会帮我们优化,有的可能存在局限性,还有可能有些其他原因。第一个规则:如果循环体内存在逻辑判断,宜将逻辑判断移到循环体的外面。这是部门社招主观题的一个考点,也是一本老书《大话处理器》里关于代码优化的章节开头的例子。形如下述代码:for一般认为是低效...

weixin_39653764的博客 228

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

c++编码规范与知识笔记(一)

良好的代码规范和编程习惯大有裨益,特此收集了一些编码规范以供参考! 欢迎各位进行指正 下面是一些代码规范和常见术语的中英文互译,以及部分知识笔记 1. int& r = a // not int &r = a 2. The prefix is should be used for boolean variables and methods. 布尔变量/函数的命名应使用前缀“is” 例如:isSet, isVisible, isFinished, isFound, isOpen

qq_25871537的博客 343

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

《C++编码规范》修订说明 (一)

《C++编码规范》修订说明目录p11:原则23.22  代码中用到的路径只用“/”而不要用“/”··· 196更改为原则23.22  代码中用到的路径只用“/”而不要用“/”··· 196正文P1倒数第2行:多态:父类和子类可以为同一个接口(复用)提供不同的实现,外部代码不需任何改动(复用)就可以拥有不同的特性。更改为多态:不同子类可以为同一个父类接口(复用)提

孟迎霞 优快云 1679

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

c++编码规范(一)

1 通用原则 7 原则1.1:对外部输入进行校验 7 原则1.2:禁止在日志中保存口令、密钥 8 原则1.3:及时清除存储在可复用资源中的敏感信息 8 原则1.4:正确使用经过验证的安全的标准加密算法 8 原则1.5:遵循最小权限原则 9 原则1.6:删除或修改没有效果的代码 9 原则1.7:删除或修改没有使用到的变量或值 9 2 字符串操作安全 10 规则2.1:确保有足够的空

mct123的专栏 1万+

【编码规范】Google C++ Style Guide【谷歌风格C++指南】(一)

背景:C++是谷歌众多开源项目采用的主要开发语言之一。正如每位C++程序员所知,该语言具有诸多强大特性,但这种强大也伴随着复杂性,进而可能导致代码更易出错且难以阅读维护。本指南旨在通过详细阐述编写C++代码的规范与禁忌来管控这种复杂性。这些规则既保持代码库的可维护性,又让开发者能高效运用C++语言特性。我们所谓的"风格"(也称可读性),其实涵盖了管理C++代码的各项约定。"风格"这个称谓稍欠准确,因为这些规范远不止涉及源文件格式化。谷歌开发的大多数开源项目都遵循本指南要求。

m0_46128531的博客 1820

C++编码规范(一)关于常量的规范,类型转换与初始化,函数的规范

C++编码规范(一)关于常量的规范,类型转换与初始化,函数的规范

qianniulaoren的博客 934

【C++】Google C++编码规范(一):作用域

1、文件作用域: 在.cpp文件中,C++使用匿名名字空间来表示文件作用域,C使用static来表示; 2、局部变量 局部变量在声明的同时,进行显示初始化;比起隐式初始化再赋值要高效; 局部变量的作用域要尽可能小,随用随定义,代码阅读性也更好; 比如:for (int i = 0; i < 10; ++i); 如果变量是一个对象, 每次进入作用域都要调用其构造函数, 每次退出作用...

郭老二 389

Google的C++编码规范公开,李开复称赞是全球最好的C++规范

Google的C++编码规范对外发布,引起了业内开发人员的广泛关注。 其中,来自硅谷的柯化成认为,这是地球上最好的一份C++编程规范,没有之一,建议广大国内外IT人员研究使用。 盛大的资深开发者赵劼表示,“非常同意。Google在这方面下足了功夫,让所有人写出来的代码都使用同样的规范,就好像在工程师编程世界里普及普通话一样。很多资深工程师刚加入的时候被迫学习编码规范,开始不习惯,后来发现收益非

ytlcainiao的专栏 764

成长之路---写好一个类

提高自己和培养人才应该循序渐进,首先要能写好一个方法,之后能写好一个类,之后能写好一个程序,之后能做好一个产品...... (本篇是针对C++类的建议)        距离上一个主题写了“写好一个方法”已经有一周多了,本想接着那篇文章直接写这篇关于写好一个类的文章,由于正在看《effective c++》这本书,以前只是选章节的看过这本书的电子版,这次买了实体书,当阅读了这本书的部分内容后,也

u012730075的专栏 760

c++代码规范及《数学之美》读后感

Google C++ 编码规范   Google C++ 编码规范很早就已经公开了,被认为是一份很好的代码规范。  Google C++ Style Guide是一份不错的C++编码指南,下面是其中的优点 保持一致也非常重要,如果你在一个文件中新加的代码和原有代码风格相去甚远的话,这就破坏了文件本身的整体美观也影响阅读,所以要尽量避免。 一些条目往往有例外,比如下面这些...

KEN781215的博客 183
下一篇: Visual C++调试指南
jack31
博客等级 码龄22年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值