C ++中的init-declarator和声明符之间有什么区别? init-declarator可能出现在init-declarator-list中。例如:
int x, y, z;
或
int x;
int y;
int z;
其中x,y,z可能是init-declarators或我应该说声明者?
答案 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
如果按上述方法对它们进行分组,则只需首先识别该组,就可以更容易地理解每个变量的含义。每个声明列表只使用一个注释也更容易(就像我上面做的那样!)并且你已经完成了。它在某种程度上也有助于维护,但可能不是那么多。