2.2 关键词(keywords)和命名标识符

C++保留了63个词。这些词被称作关键词,在C++中其中每一个关键词都有自己特殊的意义。15个以*开头的关键词都是在最初的版本后加上去的,因此,早期的参考书或资料也许没有这些关键词。

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

asm

auto

bool *

break

case

catch

char

class
const

const_cast *

continue

default

delete

do

double

dynamic_cast *
else

enum

explicit *

export *

extern

false *

float

for
friend

goto

if

inline

int

long

mutable *

namespace *
new

operator

private

protected

public

register

reinterpret_cast *

return
short

signed

sizeof

static

static_cast *

struct

switch

template
this

throw

true *

try

typedef

typeid *

typename *

union
unsigned

using *

virtual

void

volatile

wchar_t *

while

你已经使用过了上面的一些关键词,包括int, void, return, using, namespace。包括一些列操作符,这些关键词定义了整个C++语言(没有包括预处理器指令)。由于这些关键词有特殊的含义,你的IDE会用不同的颜色对它们进行标记。

当你学完这个教程的时候,你将会明白所有的这里列出来的关键词。

标识符和命名

为一个变量,函数,类,或是C++中其它的内容的名字叫做标识符。C++给了你很大的自由度让你能够以自己想要的方式对标识符进行命名。但是,当命名的时候必须遵守一些基本的规则:

  • 标识符并不是关键词,关键词是被保留的。
  • 标识符只能是字母,数字,下划线组成。也就是说名字不能包含其他符号或是空白符
  • 标识符必须以字母或是下划线开始。不能以数字开始
  • C++能够区分大写和小写的字母. nvaluenValueNVALUE都是不同的名字.

不是很难记吧?

现在你已经能够命名一个变量了,那么就让我们来讨论该如何以更合理的方式命名一个能够准确表达含义的变量吧。

  1. 变量或是函数以小写字母开头进行命名是很方便的。如果一个变量或是函数名是一个单词,整个单次应该都用小写字母表示。
1: int value; // correct
2:
3: int Value; // incorrect (should start with lower case letter)
4: int VALUE; // incorrect (should start with lower case letter)
5: int VaLuE; // incorrect (see your psychiatrist) ;)

如果标识符是由多个单次组成的名字,有两种常见的方式进行命名:通过下划线或是通过驼峰式大小写:

1: int my_variable_name; // correct (separated by underscores)
2: int myVariableName; // correct (intercapped)
3:
4: int my variable name; // incorrect (spaces not allowed)
5: int MyVariableName; // incorrect (should start with lower case letter)

在这个教程中,我们将使用驼峰式大小写,因为这样更容易读。当区块的代码量较多的时候,容易将下划线与空格搞混。

  1. 也许这是最重要的规则,给你的标识符一个实际的描述,描述出它是什么。通常没有经验的程序员会将变量名尽量命名地很短,或者解释它们节省打字量,或是说因为这些意义能够被很容易的指出。这样的想法几乎总是错误的。原则上,命名的变量能够使得对你的代码陌生的人能够很快的指出变量所表述的意思。3个月后,当你再次看你的程序的时候,你将会发现已经忘记它是如何实现的,你也会庆幸你选择了清晰的有意义的变量名字。越是在复杂的代码中使用的变量,越应该具备一个好的容易理解的名字。
int ccount Bad Nobody knows what a ccount is
int customerCount Good Clear what we’re counting
int i Bad What does I stand for?*
int index Good This variable is indexing something
int _count Bad Do not start variable names with underscore
int count Either Okay only if obvious what we’re counting
int data Bad What kind of data?
int value1, value2 Either Can be hard to differentiate between the two
int numberOfApples Good Descriptive
int totalScore Good Descriptive
int monstersKilled Good Descriptive
int x, y Either Okay only in trivial mathematical functions

注意:对于不是很重要的变量,如循环变量,使用一个简单的命名是没问题的。我们将会在其它主题中讨论。

  1. 一个清晰的注释大有帮助。比如,我们声明一个变量名字为numberOfChars,可能是用来存储一段文字中字符数量。这段文字“Hello World!"有10,11,还是12个字符呢?这取决于我们是否包含空白符或是标点符号。相比于将变量命名成numberOfCharsIncludingWhitespaceAndPunctuation,这么个相当长的变量,还不如在变量声明的地方加一个注释。
1: // holds number of chars in a piece of text -- including whitespace and punctuation!
2: int numberOfChars;

匈牙利命名法

有一种命名变量的方法叫做匈牙利命名法,这个命名法中,变量总是以一个暗示变量类型的前缀开始。

1: int nValue; // the n before Value represents that this is an integer
2: bool bValue; // b means boolean
3: char chValue; // ch means char
4: double dValue; // d means double
5: float fValue; // f means float

我们将会在不同变量之间转换的时候讨论更多的关于匈牙利命名法的内容。

转载注明:http://grass-and-moon.cnblogs.com
原文链接: https://www.cnblogs.com/grass-and-moon/archive/2012/05/02/2478910.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/49202

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午12:53
下一篇 2023年2月9日 上午12:54

相关推荐