C++编程规范之命名规范

CPP {CPP编程规范, CPP命名规范} 1 阅读详情

C++编程规范之命名规范

摘要:文档为C++于洋编程时的命名规范。包括通用命名规则、文件命名、类型命名、变量命名、常量命名、函数命名、命名空间、宏命名、命名规则例外。

最重要的一致性规则是命名管理,命名风格直接可以直接确定命名实体是:类型、变量、函数、常量、宏等等,无需查找实体声明,我们大脑中的模式匹配引擎依赖于这些命名规则。

命名具有随意性,在满足编译器规则的情况下,按照个人喜好时,由于程序猿之间的差异性,导致代码的可读性很差,所以按照一定的通用规则进行,很有必要性。

通用命名规则(General Naming Rules)

1.命名中只能出现数字、字母和下划线,且不能以数字开头

2.在c/c++中,严格区分大小写

3.尽可能给出描述性名称,不要节约空间,让别人很快理解你的代码的重要性更高

            int num_errors; // Good

            int num_completed_connections; // Good

            丑陋的命名使用模糊的缩写或随意的字符:

                        int n; // Bad – meaningless

                        int nerr; // Bad – ambiguous abbreviation

                        int n_comp_conns; // Bad – ambiguous abbreviation

            类型和变量一般为名词:如m_nOpType

            函数名通常是动词+名词:GetXmlBranch()

​​​​​​​文件命名(File Names)

1.文件命名时,可以包含文件命名中包含的字符(如短线 - )

2.文件名要全部小写,可以包含下划线(_)和短线(-),按照项目的约定来。

            ussdsessionmng.h/ussdsessionmng.cpp

3.内联函数必须放在.h文件中,

如果内联函数比较短,就直接放在.h文件中

 如果内连输比较长,可以放到以.inl结尾的文件中

包含大量内联函数的类有如下:

ussdsessionmng.h // the class declaration

ussdsessionmng.cpp // the class definition

ussdsessionmng.inl // inline functions that include lots of code.

​​​​​​​类型命名(Type Names)

类型命名包含类、结构体、枚举、类型定义(typeof)

类型命名每个单词以大写字母开头,不包含下划线:

类型命名的组成:类型说明符+描述单词;

类(C):CUSSDSessionMng

结构体(stru):struUSSDProxyCBData

枚举(EN):

            enum EN_PROXY_SUBMIT_RESP_CMD_STATUS_TAKE_ERROR

{

              PROXY_CMD_STATUS_NOT_TAKE_ERROR = 0,

              PROXY_CMD_STATUS_TAKE_ERROR = 1,

              EN_PROXY_SUBMIT_RESP_CMD_STATUS_END

};

类型定义(继承原有形式):typedef CAccess CBccess;

​​​​​​​变量命名(Variable Names)

变量命名的组成:作用域(类成员、静态、全局)标示_类型说明符+描述说明

作用域标示:类成员-m;静态-s;全局-g;静态类成员-sm;静态全局-sg

类型说明符:整形-n;布尔型-b;字符型-c;浮点型-f;指针型变量和迭代子-p;字符串-sz(string terminated by 0 character);结构体-st;枚举-en;CHString-str;特别指向函数的指针和函数对象指针(point of function)-pfn;数组(grid)-g;类的实例-i或其它

​​​​​​​常量命名(Constant Names)

常量:全局常量和非全局常量

全局常量:全部大写,单词之间用下划线连接:const int ERR_FAIL=0

非常量命名组成:类型标示+常量说明:const int nCount=0

​​​​​​​函数命名(Function Names)

DeletUrl

​​​​​​​命名空间(Namespace Names)

命名空间全小写,其命名基于项目名称和目录结构

​​​​​​​枚举命名(Enumerator Names)

枚举是类、常量、宏的结合体

​​​​​​​宏命名(Marco Names)

全部大写单词,用下划线连接

​​​​​​​命名规则例外(Exceptions to Naming Rules)

当命名与现有C/C++实体相似的对象时,可参考现有命名约定:
bigopen()
             
函数名,参考open()
uint
             typedef
类型定义
bigpos
            struct
或class,参考pos
sparse_hash_map
            STL
相似实体;参考STL 命名约定
LONGLONG_MAX
           
常量,类似INT_MAX
______________________________________

译者:命名约定就相对轻松许多,在遵从代码一致性、可读性的前提下,略显随意:
1. 总体规则:不要随意缩写,如果说ChangeLocalValue写作ChgLocVal还有情可
原的话,把ModifyPlayerName写作MdfPlyNm就太过分了,除函数名可适当为动
词外,其他命名尽量使用清晰易懂的名词;
2. 宏、枚举等使用全部大写+下划线;
3. 变量(含类、结构体成员变量)、文件、命名空间、存取函数等使用全部小写+下划线 ,
类成员变量以下划线结尾,全局变量以g_开头;
4. 普通函数、类型(含类与结构体、枚举类型)、常量等使用大小写混合,不含下划线;
5. 参考现有或相近命名约定。

C++命名规则详解 关开C++程序的命名规则详解,轻松教你学会命名规则,让你学会好的编码习惯 立即下载

相关推荐

faster lio 回环 加入GTSAM优化的记录

对Faster lio 加入回环、gtsam优化,在室外建图遇到的问题和过程

Nico_jion的博客 2599

C++编程命名规范

C++编程命名规范

qq_30150579的博客 6430

【深度学习】手把手教你在远程服务器上跑 YOLOv3 相关代码(含环境配置)

这篇文章主要记录了如何配置项目环境以及如何在远程服务器上跑 YOLOv3 模型。

作者正在煮茶中... 2384

C++谷歌命名规范

1.文件命名规则 文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc ,my_use_full_class.cc 定义类的文件名一般是成对出现,如:foo_bar.h foo_bar.cc 若是类中含大量内联函数,我们还可使用-ini.h文件,使之文件内容更加清晰,于是又如:url_table.h url_table.cc url-table-ini.h 2.类命名规则 类型命名每个单词首字母大写,不含下划线

m0_49448331的博客 4064

Unipush2.0 App消息推送(在线+离线推送)

使用unipush2.0进行消息推送,包含在线跟离线

weixin_50251467的博客 3699

4、I3C协议详解

I3C最初的设计目的是为移动设备创建一个能够使用多个传感器的单一接口。随着现代化移动设备对于传感器数量的增加以及对性能的提高,I2C和SPI已经达到了他们所能支持的临界点,而I3C的出现就是为了解决这一问题,I3C可以在同一根主线上支持更多的传感器设备,而且不会因为要支持中断或睡眠模式而增加额外的逻辑信号。I3C可以在更低功耗的情况下提供更快的传输速率,该特性的提升不止是对移动设备,对其他的嵌入式设备也都是很大的帮助。例如穿戴设备,需要在有限的物理空间中使用多个传感器并且要求更小的耗电。 一、简述..

迟子涵925的博客 2万+

C++命名规范

在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。 在引入细节之前,先说明一下命名规范的整体原则: 同一性 在编写一...

chouci9270的博客 624

嵌入式系统启动流程解析:ROM Code、Bootloader与启动代码的协同工作

本文深入解析嵌入式系统从通电到运行的完整启动流程,详细阐述了ROM Code、Bootloader与启动代码三者如何像接力赛般协同工作。ROM Code作为芯片固化的初始引导程序,负责硬件自检并加载Bootloader;Bootloader作为系统总指挥,初始化关键硬件并加载操作系统内核;启动代码则为C语言运行环境铺平道路。理解这三者的分工与协作,是进行系统移植和解决启动问题的关键。

dd012的博客 553

【C++】【命名规范】你的代码风格是哪种?(驼峰命名法、下划线命名法、帕斯卡命名法、常量命名法等)

本文分享了常见的命名风格习惯(例如驼峰命名法、下划线命名法、帕斯卡命名法、常量命名法等),向读者推荐了C/C++中类名、接口名、函数名、变量名和常量的常见命名风格,以及扩展了一些常见的代码书写风格(例如{}),最后延申了两个对代码执行有影响的编程习惯。 希望本文能给各位读者带来些许帮助,同时也欢迎热心的码友提供自己的见解分享在评论区!

crr411422的博客 1万+

STM32以太网通信-STM32以太网外设(ETH)

通过 DMA 控制器进行介质访问控制 (MAC) STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。 借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准发送和接收MAC 数据包。 ETH 内部自带专用的DMA 控制器用于MAC,ETH 支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部PHY 芯片连接。MII 和RMII 接口用于

暖暖_的_纠结的博客 2万+

Python爬虫实战:逆向工程与异步爬虫技术,高效抓取国家知识产权局专利数据

相比于传统的Selenium,Playwright由微软开发,支持多浏览器(Chromium, Firefox, WebKit),API更现代,执行速度更快,并且能轻松录制用户操作生成代码。通常,列表中的摘要信息是缩略的,我们需要进入每个专利的详情页获取完整信息(如主权要求、法律状态等)。我们的第一步是手动操作一遍搜索流程,并用Playwright的“录制”功能或开发者工具,找出真正返回专利数据的那一个或多个网络请求。以友好的、对人类行为模拟的方式爬取数据是基本的网络礼仪,也能有效避免你的IP被封锁。

2201_76125261的博客 2420

C++简明教程(12)(编程命名规范)

命名规范是 C++ 编程中不可或缺的一部分,它不仅仅是一种代码编写的约定俗成,更是提高代码质量、促进团队协作以及提升开发效率的重要手段。通过遵循表意清晰准确、避免歧义、保持简洁性等通用原则,并在变量、函数、类、文件和常量等各个方面采用合适的具体命名规范,开发者能够编写出更加易于理解、维护和扩展的代码。同时,在团队开发环境中,严格执行统一的命名规范能够减少沟通成本,避免因命名不一致而引发的各种问题,从而使整个项目的开发过程更加顺利和高效。

邮箱:feboreigns001@163.com 1236

工业相机通用SDK封装实战:C#硬件抽象层(HAL)实现多品牌无缝切换

本文介绍了一种解决工业相机SDK碎片化问题的通用解决方案。作者基于多年工业视觉项目经验,提出通过硬件抽象层(HAL)和适配器模式封装不同品牌相机的SDK差异,实现统一的相机操作接口。文章详细分析了传统直接对接SDK方式的四大痛点:接口碎片化、维护成本高、业务耦合度高和稳定性差,并给出了分层架构设计方案。该方案采用三层架构(业务层、抽象层、实现层),遵循最小接口原则和高内聚低耦合等设计理念,定义了包括触发模式、像素格式等通用枚举类型,以及图像数据结构等核心抽象。最终实现的HAL层能够支持多种品牌相机,显著降低

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 576

我的C++编程命名规范

我的C++编程命名规范   在软件开发过程中,代码的命名规范是一项很突出的内容。一套定义完整、结构清晰明了的命名规范将大大提升源代码的可读性和软件的可维护性。 据考证,没有一种命名规则可以让所有的程序员都满意,程序设计教科书一般也不会指定命名规则。但是制定一套令开发组成员基本满意的命名规则,并在项目中贯彻实施,也是团队开发一项必不可少的工作。 我将我的团队的实际工作中的

thanklife的专栏 8710

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

c++编程风格和命名规范

C++编程命名规范     编辑: 捞刀客       在软件开发过程中,代码的命名规范是一项很突出的内容。一套定义完整、结构清晰明了的命名规范将大大提升源代码的可读性和软件的可维护性。 当然没有一种命名规则可以让所有的程序员都满意,程序设计教科书一般也不会指定命名规则。但是制定一套统一的命名规则,并在项目中贯彻实施,是团队开发的产品质量一项必不可少的工作。   第一部分:文件

buffi的专栏 2318

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

编程命名规范之 Google C++ 编程命名规范

大一的时候曾经特别关注过命名规范的问题,并且写了一个博客总结了一些基础的规范——《三种编程命名规范》,后来得知有一种命名规范叫做 Google C++Google C++Google\ C++ 命名规范的时候,特意看了一下,但是特别反感,感觉太糟糕了,所以就没有深究过……我讨厌压行,这是我反感这个规范的最大原因。 不过,现在我不得不开始使用它了,因为我们公司我们部门我们组使用...

逐梦者 1951

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C C++ Java 编程命名规范

1、编程命名规范—四种命名方法 https://blog.youkuaiyun.com/tgb_tom/article/details/103665787?biz_id=102&utm_term=%E7%BC%96%E7%A8%8B%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-1-103665787&s...

Move on 323

C++编程命名规范的举例

c++各种类型、函数、类的命名规范举例介绍

chengyongkang的博客 221

C++编程 命名规范

C++ 编程命名

HUMENGFEI222的博客 667
上一篇: vim 修改tab为四个空格
下一篇: C/C++浮点数在内存中的存储方式
Simple_Man_Just
博客等级 码龄11年 18粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值