在C中初始化结构的建议方法

卡尔·希亚斯

关于如何在C中初始化结构是否有建议的方法?例如:

Book romeo = {"Romeo & Juliet", "Shakespeare", 1600};
Book inferno;
inferno.title = "Divine Comedy";
inferno.author = "Dante";
inferno.year = 1400;

一种方法优于另一种方法吗?我认为出于可读性考虑,第二个要容易一些,但是如果有很多字段,可能会变得很笨拙。此外,有什么方法可以在第一种方法中指定变量名称,例如:

Book romeo = {title="...", author="...", year="...");
chux-恢复莫妮卡

一种方法优于另一种方法吗?

注意:C将第一个定义为初始化,将第二个定义赋值

是的,可以初始化全局对象,但不能为其分配全局代码。

// Possible
Book romeo = {"Romeo & Juliet", "Shakespeare", 1600};

Book inferno;

// Not possible outside a function.
inferno.title = "Divine Comedy";
inferno.author = "Dante";
inferno.year = 1400;

有没有办法在第一个方法中指定变量名

从C99开始,可以以任何顺序(完整或不完整)指定成员。

Book romeo = {. title = "Romeo & Juliet", .author = "Shakespeare", .year = 1600};
Book romeo = {.year = 1600, . title = "Romeo & Juliet", .author = "Shakespeare" };
Book romeo = {. title = "Romeo & Juliet", .author = "Shakespeare" };  // .year takes on value 0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章