c++ - C++ 中的声明符

标签 c++ declaration language-lawyer

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 initializeropt

也就是说,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/

相关文章:

c++ - mysql数据库写入和文件写入

c++ - std::map 发现在 C++ 中不起作用

c++ - 我应该在此代码中调用类析构函数吗?

variables - Firebird 2.5 中无法声明变量,为什么?

c++ - 在 C++ 中的条件或控制语句中声明和初始化变量

javascript - ..if 语句中未声明的变量不会引发错误

c++ - 为什么基于锁的程序不能组成正确的线程安全片段?

c++ - 不明确的重载、隐式转换和显式构造函数

C++ token 类型

c++ - 函数参数列表中的类声明