C ++结构初始化

Dinesh公关

是否可以按如下所示在C ++中初始化结构

struct address {
    int street_no;
    char *street_name;
    char *city;
    char *prov;
    char *postal_code;
};
address temp_address =
    { .city = "Hamilton", .prov = "Ontario" };

此处此处的链接提到只能在C中使用这种样式。如果可以,为什么在C ++中不能使用这种样式?是否有任何根本的技术原因导致无法在C ++中实现它,或者使用这种风格是一种不好的做法。我喜欢使用这种初始化方式,因为我的结构很大,并且这种样式使我清楚地知道了将哪个值分配给哪个成员。

如果还有其他方法可以达到相同的可读性,请与我分享。

在发布此问题之前,我已经参考了以下链接

  1. 适用于AIX的C / C ++
  2. 具有变量的C结构初始化
  3. 使用C ++中的标签进行静态结构初始化
  4. C ++ 11正确的结构初始化
妖怪

如果要弄清楚每个初始化器的值是什么,只需将其拆分成多行,并在每个注释上加上注释:

address temp_addres = {
  0,  // street_no
  nullptr,  // street_name
  "Hamilton",  // city
  "Ontario",  // prov
  nullptr,  // postal_code
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档