union 可以在声明中初始化吗?

标签 c initialization declaration unions

例如,假设我们有一个 union

typedef union {
unsigned long U32;
float f;
}U_U32_F;

声明这种 union 类型的变量时,有没有办法设置初始值?

U_U32_F u = 0xffffffff;   // Does not work...is there a correct syntax for this?

最佳答案

使用初始化列表:

U_U32_F u = { 0xffffffff };

您可以通过以下方式设置除第一个成员之外的其他成员

U_U32_F u = { .f = 42.0 };

关于 union 可以在声明中初始化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148989/

相关文章:

javascript - (this) 在函数声明之后

c - 如何获取导致段错误的行号?

c - 了解声明 C 字符串的两种方式

c - vfork() 系统调用

C# 强制静态字段初始化

c++ - 从另一个数组值初始化数组大小

c - 在运行时重新初始化全局/静态内存或对全局/静态变量进行静态分析

java - 可以在循环中声明多个具有不同变量名称的变量而不使用数组吗?

c - 信号处理函数前 3 次捕获 SIGKILL

c - 环回模式下的 ip_rcv(在 ip_input.c 中用于 ipv4)行为