C++中的声明符

use*_*214 1 c++ declaration language-lawyer

什么是C++中的init-declarator和声明符之间的区别?init-declarator可能出现在init-declarator-list中.例:

int x, y, z;
Run Code Online (Sandbox Code Playgroud)

要么

  int x;
  int y;
  int z;
Run Code Online (Sandbox Code Playgroud)

其中x,y,z可能是init-declarators或我应该说声明者?

Naw*_*waz 7

这是语法:

init-declarator-list:
       init-declarator
       init-declarator-list , init-declarator
init-declarator:
       declarator initializer选择

也就是说,init-declarator-list 可能包含多个变量的声明,并且init-declarator 必须包含恰好一个变量的声明.

这意味着,在您的情况下,第一个代码是init-declarator-list第二个代码是init-declarator(和init-declarator-list两个,因为init-declarator-list可能只包含一个声明).

但你怎么称呼是什么呢?在日常使用中,这种差异几乎可以忽略不计.

但是,如果您想了解编码风格,那么不同的人会以不同的方式声明变量.我见过很多优秀的程序员同时使用这两种风格.我通常在同一个声明列表中编写所有相关变量,例如

int x,y,z; //point coordinates
int height, width; //dimensions
std::string firstname, lastname; //name parts
int left, top, right, bottom; //rectangle coordinates
Run Code Online (Sandbox Code Playgroud)

如果按上述方法对它们进行分组,则只需首先识别该组,就可以更容易地理解每个变量的含义.每个声明列表只使用一个注释也更容易(就像我上面做的那样!)并且你已经完成了.它在某种程度上也有助于维护,但可能不是那么多.