我想初始化一个结构元素,在声明和初始化中分开。这就是我所拥有的:
typedef struct MY_TYPE { bool flag; short int value; double stuff; } MY_TYPE; void function(void) { MY_TYPE a; ... a = { true, 15, 0.123 } }
这是MY_TYPE按照 C 编程语言标准(C89、C90、C99、C11 等)声明和初始化局部变量的方式吗?或者有什么更好的或者至少可以工作的吗?
MY_TYPE
更新 我最终得到了一个静态初始化元素,我根据需要设置了每个子元素。
在 (ANSI) C99 中,您可以使用 指定的初始化程序 来初始化结构:
MY_TYPE a = { .flag = true, .value = 123, .stuff = 0.456 };
其他成员初始化为零:“省略的字段成员被隐式初始化,与具有静态存储持续时间的对象相同。” (https://gcc.gnu.org/onlinedocs/gcc/Designated- Inits.html)