c++ 在结构化数据类型中声明变量沿着类型真的是不好的做法吗?

c8ib6hqw  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(166)

我的C++教科书中提到,同时声明变量和类型声明通常是不好的做法,如下所示:

  1. struct fullName
  2. {
  3. string firstName;
  4. string middleName;
  5. string lastName;
  6. } examplePerson1, examplePerson2;

对我来说,这似乎更合理,因为它的简洁性和替代方法,但我也还在学习,所以如果有人能详细说明,我将非常感激,因为教科书没有。

y3bcpkx1

y3bcpkx11#

如果你的教科书没有给出任何理由,那它就不是一本很好的教科书,我不建议你从表面上看它说了什么。我不明白为什么这会是一个糟糕的做法。
这样做实际上可以(主观警告)被用作一个稍微有用的提示,即该类型可能只被那些变量/数据成员使用(强调“提示”,因为结构/类 * 仍然可以 * 用于声明其类型的其他变量)。
请注意,如果你像这样声明 * 多个 * 变量,它确实违反了C核心准则:ES.10:每项宣布(仅)宣布一个名称,但该准则的理由是:
每行一个声明增加了可读性,避免了与C/C
语法相关的错误。它还为更具描述性的行尾注解留出了空间。
例子,不好

  1. char *p, c, a[7], *pp[7], **aa[10]; // yuck!

我要说的是,可读性的观点在这种情况下是有争议的,C语法错误的观点并不总是适用的(你可以小心),行尾注解的观点可能适用,但只有当你真的想为该类型的每个变量写注解描述时。还要考虑一下C核心指南的一些作者写了关于https://isocpp.org/wiki/faq/coding-standards编码标准的警告。

相关问题