我想初始化 const struct
:
const struct MyStruct MYSTRUCT_DEFAULTS = {
"prop1",
"prop2",
"prop3",
123,
456,
...
}
但是在上面,当 struct
很大时,无法区分哪个字段是哪个字段。在 C99 中我可以使用 { .prop1 = "prop1, ...}
语法,但我不在 C99 下编译。
我不相信我可以创建结构然后使用 MYSTRUCT_DEFAULTS.prop1 = "prop1"
因为这会违反它的 const
。
有没有一种更简洁的方法来初始化我的结构并清楚哪些字段是哪些?显然,我可以在每个字段旁边使用注释,但是当在 struct
中添加或删除字段时,这很容易出错。
最佳答案
我认为注释是你最好的选择(即使你说,你对它们不感兴趣),否则答案是否定的,C99之前没有其他语法糖:
<小时/>真实文本答案:
const struct MyStruct MYSTRUCT_DEFAULTS = {
/* First property */ "prop1",
/* Second property */ "prop2",
/* Last str property */ "prop3",
/* Some number */ 123,
/* Magical int */ 456,
/* An ellipse? ;) */ ...
};
看到了吗?我的屏幕截图好多了..
关于c - 初始化 const struct 并明确哪个字段是哪个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23843678/