前言:
在 C/C++ 中,类名、接口名、变量名和函数名等的命名规则是比较自由的,开发者可以根据自己的喜好选择合适的命名方式。但是,为了保持代码的可读性和可维护性,我们通常遵守一些命名规则。
例如驼峰命名法、下划线命名法、帕斯卡命名法、常量命名法等,此外本文末尾还延申了一些常见的代码书写风格(例如{}),以及两个对代码执行有影响的编程习惯(采用const type &,采用NULL=p)。
一、常见的命名法
1.驼峰法命名法
驼峰法是一种较为常见的变量名和函数名命名规则,其命名方式是将每个单词的首字母大写,其他字母小写(第一个单词首字母小写)。例如:
int myNumber; void doSomething();
这是一种可读性较高的命名方式,使得变量名和函数名清晰易懂。
2.下划线命名法
下划线命名法是一种将单词用下划线 _
分隔的命名方式。它可以增加变量名和函数名的可读性,特别是在变量名和函数名比较长时,更容易让人理解。例如:
int my_number; void do_something();
3.帕斯卡命名法
帕斯卡命名法是一种把每个单词的首字母都大写的命名方式。它与驼峰命名法相似,不同之处在于,帕斯卡命名法中每个单词都必须大写。例如:
class MyClassName { // ... }; class MyInterfaceName { virtual void doSomething() = 0; };
4.匈牙利命名法
匈牙利命名法以数据类型作为前缀,后跟描述变量用途的单词。例如:
int iCount; float fPrice; char cFirstChar;
这种命名方式可读性较强,但随着代码的复杂性增加,命名长度会大大增加。
5.短划线命名法(不建议使用)
短划线命名法和下划线命名法类似,只不过是使用短划线 -
代替了下划线 _
。
let first-name = "John"; let last-name = "Doe";
请注意,使用短划线命名法有时也会导致代码的可读性降低,因为它在一些语言和环境中被用作减号的语法符号。因此,在选择命名规范时,需要考虑到其可读性和可理解性,以及特定语言和环境的习惯和规范。
6.全部大写字母命名法
这种命名方式是将整个名称都用大写字母表示,例如:
MY_VARIABLE = "some value" # 使用全部大写字母来表示一个变量名,但这不是常量 MY_LIST = [1, 2, 3] # 使用全部大写字母来表示一个列表变量名
7.常量命名法
全部大写字母命名法和常量命名法本质上是相同的,都是将标识符的每个字母都转换为大写字母来表示常量。在常量命名时,也可以采用上述两种命名方式中的一种,例如:
const int MAX_NUMBER = 100; const double PI = 3.;
无论采用哪种命名方式,命名都应该表意明确、易读易懂,有助于提高代码的可读性和可维护性。在编写代码时,应该遵循命名规则,保持代码的一致性和整洁性。
二、在C/C++中的习惯使用
1.类名和接口名
在 C++ 中,类名和接口名应当清晰明了、易读易懂,通常采用帕斯卡命名法。因为类名和接口名是代码中的重要组成部分,它们代表着特定的对象或概念,应该使用名词或动词+名词等形式来描述。例如:
class MyClassName { // ... }; class MyInterfaceName { virtual void doSomething() = 0; };
需要注意的是,类名和接口名应当尽量简洁,并描述清晰明了的概念,同时避免使用过长的名称。此外,为了保持命名的一致性,类名和接口名也可以采用其他命名方式,例如驼峰命名法或下划线命名法。
2.函数名
在 C++ 中,函数名应该清晰明了、易读易懂,通常采用驼峰命名法或下划线命名法。
驼峰命名法的命名规则是将每个单词的首字母大写。例如:
void myFunction(); void doSomethingWithData();
下划线命名法的命名规则是将单词之间用下划线 _
连接。例如:
void my_function(); void do_something_with_data();
需要注意的是,无论采用哪种命名方式,函数名应该清晰明了、易读易懂,可以用动词或名词等形式表示函数的功能。同时,函数名也应该符合代码的命名规范和风格,保持命名的一致性。
3.变量名
在 C++ 中,变量名应该清晰明了、易读易懂,通常采用驼峰命名法或下划线命名法。
驼峰命名法的命名规则是将每个单词的首字母大写。例如:
int myVariable; float myFloatVariable;
下划线命名法的命名规则是将单词之间用下划线 _
连接。例如:
int my_variable; float my_float_variable;
需要注意的是,无论采用哪种命名方式,变量名应该清晰明了、易读易懂,可以用名词或形容词等形式表示变量的含义和作用。同时,变量名也应该符合代码的命名规范和风格,保持命名的一致性。
4.枚举命名
使用帕斯卡命名法,命名枚举名;使用常量命名法,命名枚举值。
以下是一些枚举命名的例子:
enum DayOfWeek { // 一周的日 SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
三、推荐、扩展和延申
推荐代码风格展示:
- 类名/接口名采用帕斯卡命名方式;
- 函数名采用驼峰命名方式;
- 变量名采用下划线命名方式;
- 常量采用常量命名方式
class MyClass { // 类名使用帕斯卡命名法 public: void myFunction(); // 函数名使用驼峰式命名法 private: int my_variable; // 变量名使用下划线命名法 const int MY_CONSTANT = 100; // 常量名使用全大写字母,单词间使用下划线分隔 };
其实,个人觉得只要自己习惯(能见名知意)就好,没有说一定非用哪一种;不过不建议出现这种情况,风格经常变动(其实就是乱写,例如一个程序里函数名命名出现好几种不同的风格)。
扩展:
观察下面两种风格的代码,注意区别{}的使用。
代码1:
if (something_is_true) { // do something } else { // do something else }
代码2:
if (something_is_true) { // do something } else { // do something else }
思考:看看你更喜欢用哪一款?(还是一样,不建议混用!)
延申:
以上都是风格问题,其实本质并不对代码执行造成影响(影响的只是人的心情,尤其是看别人的代码)。下面延申两个案例,这里不仅仅是代码风格的问题,也可能会影响程序的执行结果。
案例1:
在传递参数时加上const,防止误修改原先值。
void process_string(const string &str) { cout << "The length of the string is: " << str.length() << endl; }
在函数中使用 const string &
参数能够提高程序的效率和性能,但是不能修改输入的字符串,因为该参数是以引用的方式传递的。
案例2:
在C语言中有种编码习惯是比较表达式把常量放在前面,这样如果你把 == 写成了 = (赋值操作符),编译器就会报错。
int *p = NULL; if (p == NULL) { printf("p is null\n"); } // 或者用 Yoda 表达式 if (NULL == p) { printf("p is null\n"); }
当然,在使用 C++11 及以上版本中,推荐使用 nullptr 关键字来代替 NULL 指针常量。(C++11及以上,可不用关注该习惯。)
总结:
本文主要分享了一些常见的命名风格习惯(例如驼峰命名法、下划线命名法、帕斯卡命名法、常量命名法等),向读者推荐了C/C++中类名、接口名、函数名、变量名和常量的常见命名风格,以及扩展了一些常见的代码书写风格(例如{}),最后延申了两个对代码执行有影响的编程习惯。
希望本文能给各位读者带来些许帮助,同时也欢迎热心的码友提供自己的见解分享在评论区!
今天的文章
c++命名规则_代码规范七大原则分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/80550.html