C++ 中的 init-declarator 和 declarator 有什么区别? init-declarator 可能出现在 init-declarator-list 中。示例:
int x, y, z;
或
int x;
int y;
int z;
其中 x、y、z 可能是初始化声明符,还是我应该说声明符?
最佳答案
语法如下:
init-declarator-list
:
init-declarator
init-declarator-list , init-declarator
init-declarator
:
declarator initializer
opt
也就是说,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
如果像上面这样分组,那么只要先认清分组,就更容易理解每个变量的含义。对每个声明列表只使用一个注释也更容易(就像我上面所做的那样!),你就完成了。它还在某种程度上有助于维护,但可能不是那么多。
关于c++ - C++ 中的声明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748726/