C++ 自学教程 LearnCPP 第1.4c章 关键词和命名标识符

C++ 自学教程 第1.4c章


前言:这一章节介绍怎么给你的函数或者变量起~名~字~ 我也是一开始就爱用些abcd,x,y,z之类的简单名,但真的过两天就忘记哪个是什么意思了。当然一开始学习的时候编写的程序都比较简单,但是真的开始做项目的时候就知道这种做法多不利于可持续性发展,下文给出了几个常用的命名传统,不遵守不会报错,但遵守受益无穷。阅读愉快。


关键词

C++保留了一个包含84个词集用作个用。这些词被叫做关键词(或者保留词),而且他们都有独特的意思C++。

下面是所有C++的关键词:

keyword

*这15个词是在C++98引入的。有些老的参考书可能不包含这些。
** 这10个词是在C++11被加进来的,所以如果你的编译器不兼容C++11,这些关键词可能不能用。

C++11还添加了两个特殊标识符:override 和 final。这些词在一些文本内有特殊意思。

你已经遇见了不少关键词,包括int, void, 和 return。与其他运算符号一起,这些关键词和特别的标识符确定了整个C++语言(不包括预处理命令)。因为这些关键词和标识符有特别的意思,你的IDE将会自动改变这些词语的颜色使得他们更容易被看见。

当你看完了这系列的教程,你将能够理解大部份的关键词哦!


标识符命名规则

变量,函数,类型,或者其他C++对象的名字也被叫做标识符(identifier)。C++给予了用户很大的灵活性来起自己喜欢的名字。但是,命名标识符还是要遵从一定的规则:

• 标识符不可以跟关键词同名。关键词被预留了。
• 标识符的名字只能包含字母,数字,和下划线。这也就是说标识符的名字里不能包含除了下划线以外的符号,或者是空格。
• 标识符的名字必须以字母(大小写都可)或者是下划线开头。不能以数字打头。
• 同字母的大小写不一样。nvalue和nValue代表不同对象。

现在,你知道了能够怎样一个变量命名,下面谈谈你应该怎么给变量或者函数命名。

首先,C++有个不成文的传统:变量名以小写字母打头。如果变量名是一个单词,整个名字都应该用小写字母。

int value; // correct

int Value; // incorrect (should start with lower case letter)
int VALUE; // incorrect (should start with lower case letter)
int VaLuE; // incorrect (see your psychiatrist) ;)

总体来说,函数也以小写字母开头。虽然可能有些不同意见,但是为了保持一致我们这里都用小写。比如主函数main和其他C++标准库里的函数名都是小写。

以大写字母开头的标识符名字通常用在结构,类,和枚举(之后会讲到)。

如果一个变量或函数包含一个以上的单词,有以下两条习惯:使用下划线分隔,或者间断性大写分隔(Fun fact: 也被称为骆驼大写CamelCase,因为突出的大写字母就像骆驼的驼峰一样)。

int my_variable_name; // correct (separated by underscores)
void my_function_name() // correct (separated by underscores)

int myVariableName; // correct (intercapped/CamelCase)
void myFunctionName(); // correct (intercapped/CamelCase)

int my variable name; // invalid (whitespace not allowed)
void my function name(); // invalid (whitespace not allowed) 

int MyVariableName; // valid but incorrect (should start with lower case letter)
void MyFunctionName(); // valid but not best practice

在这个教程里面,我们通常会使用间隔大写字母间隔的命名法,这样读起来简便些。不过其实这两种命名法都很常见———C++标准库就常在变量名和函数名里使用下划线。有时候你还可能看到两种混用的:变量名用下划线,函数名用大写间隔。
值得一提的一点是,如果你在用别人的代码,通常公认最好要延用原本代码的命名风格。

其次,你应该避免起名时使用下划线开头,由于通常情况下这些名字被OS,库,或者编译器留用。

第三,这也可能是最重要的一点,让这个名字确实地的描述你的标识符是什么。没有经验的程序员通常会把名字起得越短越好,觉得这样能节省时间或者觉得其意义简单明了。但是,这样的想法几乎总是错的。理想情况下,变量的名字应该能帮助完全没看过你的代码的人尽快理解你的代码。三个月后,当你在看你之前写的代码,你将会忘记这段代码是怎么运作的。你会对好好起名的自己感激涕零。当变量所在的代码越复杂,它名字的意思应该越明确。

int ccount;         //不好,没人知道ccount是什么
int customerCount;  //好,很明显我们在计算什么
int i;              //不好*,除非用再简单或者临时情况下,比如说循环变量里。
int index;          //不一定,主要看上下文
int totalScore;     //好,描述性强

*注意,在琐碎/不重要的地方使用简单的变量名是可以的,比如说循环变量,或者简单数学方程里。

第四,一个说明性的注释也很有用。比方说,如果你定义了一个变量叫做:numberOfChars,用来存贮一段文本里的字符数量。“Hello World!” 里有几个字符呢?10个,11, 还是12个呢?这取决于我们是否计算空格,符号。与其把它命名为超长的:numberOfCharsIncludingWhitespaceAndPunctuation(包括空格和符号的字符数)的,不如在后面加一行注释便于大家理解。

// holds number of chars in a piece of text -- including whitespace and punctuation!
// 包含文本里所有符号的数目,包括空格和符号!
int numberOfChars;

小测试:

挑出哪个变量的名字不符合规范,并解释为什么。

1) int sum;
2) int _apples;
3) int VALUE;
4) int my variable name;
5) int TotalCustomers;
6) int void;
7) int numFruit;
8) int 3some;
9) int meters_of_pipe;







2) 变量名不应该以下划线开头
3变量名应该以小写字母开头
4) 变量名不应该包含空格.
5) 变量名应该以小写字母开头
6) void 是个关键词.
8) 变量的名字不应该用数字打头.


说明: 本教程基于网上一个英文教程LearnCPP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值