| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> Google C++项目命名约定 -> 正文阅读 |
|
[C++知识库]Google C++项目命名约定 |
系列文章目录文章目录前言一、命名约定最重要的一致性规则是命名管理,命名的风格能让我们在不需要去查找类型声明的条件下快速地了解某个名字代表的含义: 类型, 变量, 函数, 常量, 宏, 等等, 甚至. 我们大脑中的模式匹配引擎非常依赖这些命名规则。 命名规则具有一定随意性, 但相比按个人喜好命名, 一致性更重要, 所以无论你认为它们是否重要, 规则总归是规则。 二、通用命名规则1.总述函数命名, 变量命名, 文件命名要有描述性; 少用缩写。 尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要,不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词。
注意, 一些特定的广为人知的缩写是允许的, 例如用 i 表示迭代变量和用 T 表示模板参数。 模板参数的命名应当遵循对应的分类: 类型模板参数应当遵循 类型命名 的规则, 而非类型模板应当遵循 变量命名 的规则。 三、文件命名1.总述文件名要全部小写, 可以包含下划线() 或连字符(-), 依照项目的约定,如果没有约定, 那么 “” 更好。 2.说明
C++ 文件要以.cc 结尾, 头文件以.h 结尾.专门插入文本的文件则以.inc 结尾, 参见 头文件 不要使用已经存在于 / usr / include 下的文件名(Yang.Y 注 : 即编译器搜索系统头文件的路径), 如 db.h。 通常应尽量让文件名更加明确.http_server_logs.h 就比 logs.h 要好.定义类时文件名一般成对出现, 如 foo_bar.h 和 foo_bar.cc, 对应于类 FooBar。 内联函数必须放在.h 文件中.如果内联函数比较短, 就直接放在.h 中。 四、变量命名1.总述变量(包括函数参数) 和数据成员名一律小写, 单词之间用下划线连接.类的成员变量以下划线结尾, 但结构体的就不用, 如:a_local_variable, a_struct_data_member, a_class_data_member_ 2.说明1.普通变量命名
2.类数据成员不管是静态的还是非静态的, 类数据成员都可以和普通变量一样, 但要接下划线:
3.结构体变量不管是静态的还是非静态的, 结构体数据成员都可以和普通变量一样, 不用像类那样接下划线:
结构体与类的使用讨论, 参考结构体和类 五、常量命名1.总述font size=3 color=yello>声明为 constexpr 或 const 的变量, 或在程序运行期间其值始终保持不变的, 命名时以 “k” 开头, 大小写混合.例如:
2.说明所有具有静态存储类型的变量(例如静态变量或全局变量, 参见 存储类型) 都应当以此方式命名.对于其他存储类型的变量, 如自动变量等, 这条规则是可选的.如果不采用这条规则, 就按照一般的变量命名规则。 六、函数命名1.总述常规函数使用大小写混合, 取值和设值函数则要求与变量名匹配: MyExcitingFunction(), MyExcitingMethod(), my_exciting_member_variable(), set_my_exciting_member_variable()。 2.说明一般来说, 函数名的每个单词首字母大写(即 “驼峰变量名” 或 “帕斯卡变量名”), 没有下划线.对于首字母缩写的单词, 更倾向于将它们视作一个单词进行首字母大写(例如, 写作 StartRpc() 而非 StartRPC())。
(同样的命名规则同时适用于类作用域与命名空间作用域的常量, 因为它们是作为 API 的一部分暴露对外的, 因此应当让它们看起来像是一个函数, 因为在这时, 它们实际上是一个对象而非函数的这一事实对外不过是一个无关紧要的实现细节。) 取值和设值函数的命名与变量一致.一般来说它们的名称与实际的成员变量对应, 但并不强制要求.例如 int count() 与 void set_count(int count)。 七、命名空间命名1.总述
八、枚举命名1.总述枚举的命名应当和 常量 或 宏 一致 : kEnumName 或是 ENUM_NAME。 2.说明单独的枚举值应该优先采用 常量 的命名方式.但 宏 方式的命名也可以接受.枚举名 UrlTableErrors(以及 AlternateUrlTableErrors) 是类型, 所以要用大小写混合的方式。
2009 年 1 月之前, 我们一直建议采用 宏 的方式命名枚举值.由于枚举值和宏之间的命名冲突, 直接导致了很多问题.由此, 这里改为优先选择常量风格的命名方式.新代码应该尽可能优先使用常量风格.但是老代码没必要切换到常量风格, 除非宏风格确实会产生编译期问题。 九、宏命名1.总述你并不打算 使用宏, 对吧 ? 如果你一定要用, 像这样命名 : MY_MACRO_THAT_SCARES_SMALL_CHILDREN。 2.说明参考 预处理宏; 通常 不应该 使用宏.如果不得不用, 其命名像枚举命名一样全部大写, 使用下划线:
十、命名规则的特例1.总述如果你命名的实体与已有 C / C++ 实体相似, 可参考现有命名策略: bigopen() : 函数名, 参照 open() 的形式 int : typedef bigpos : struct 或 class, 参照 pos 的形式 sparse_hash_map : STL 型实体; 参照 STL 命名约定 LONGLONG_MAX : 常量, 如同 INT_MAX 总结以上就是今天要讲的内容,本文介绍了Google C++项目命名约定,非常的便捷,所以我们务必掌握。另外如果上述有任何问题,请懂哥指教,不过没关系,主要是自己能坚持,更希望有一起学习的同学可以帮我指正,但是如果可以请温柔一点跟我讲,爱与和平是永远的主题,爱各位了。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:22:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |