初始化const结构并清楚哪个字段是哪个

时间:2014-05-24 10:01:58

标签: c struct initialization const

我想初始化一个const struct

const struct MyStruct MYSTRUCT_DEFAULTS = {
  "prop1",
  "prop2",
  "prop3",
  123,
  456,
  ...
}

然而,在上文中,当struct很大时,无法确定哪个字段是哪个字段。在C99中,我可以使用{ .prop1 = "prop1, ...}语法,但我没有在C99下编译。

我不相信我可以创建结构然后使用MYSTRUCT_DEFAULTS.prop1 = "prop1",因为这会违反它const

是否有更简洁的方法来初始化我的结构并清楚哪些字段是哪个?我显然可以在每个字段旁边使用注释,但在struct添加或删除字段时容易出错。

1 个答案:

答案 0 :(得分:0)

我认为评论是你最好的选择(即使你说过,你对它们不感兴趣),否则答案是否定的,C99之前没有其他的语法糖:

enter image description here


真实答案:

const struct MyStruct MYSTRUCT_DEFAULTS = {
    /* First property */  "prop1",
   /* Second property */  "prop2",
 /* Last str property */  "prop3",
       /* Some number */  123,
       /* Magical int */  456,
    /* An ellipse? ;) */  ...
};

见?我的屏幕截图更好..