C ++中的声明符

时间:2011-10-13 02:18:26

标签: c++ declaration language-lawyer

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

int x, y, z;

  int x;
  int y;
  int z;

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

1 个答案:

答案 0 :(得分: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

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