我想初始化一个const struct
:
const struct MyStruct MYSTRUCT_DEFAULTS = {
"prop1",
"prop2",
"prop3",
123,
456,
...
}
然而,在上文中,当struct
很大时,无法确定哪个字段是哪个字段。在C99中,我可以使用{ .prop1 = "prop1, ...}
语法,但我没有在C99下编译。
我不相信我可以创建结构然后使用MYSTRUCT_DEFAULTS.prop1 = "prop1"
,因为这会违反它const
。
是否有更简洁的方法来初始化我的结构并清楚哪些字段是哪个?我显然可以在每个字段旁边使用注释,但在struct
添加或删除字段时容易出错。
答案 0 :(得分:0)
我认为评论是你最好的选择(即使你说过,你对它们不感兴趣),否则答案是否定的,C99之前没有其他的语法糖:
真实答案:
const struct MyStruct MYSTRUCT_DEFAULTS = {
/* First property */ "prop1",
/* Second property */ "prop2",
/* Last str property */ "prop3",
/* Some number */ 123,
/* Magical int */ 456,
/* An ellipse? ;) */ ...
};
见?我的屏幕截图更好..