将 struct 转换为 int,反之亦然
Converting struct to int and vice versa
为了使一些 _Generic 表达式正常工作,似乎唯一的选择是将整数类型转换为结构类型,反之亦然,这些无意义的转换只出现在未选择的表达式中。我无法明确回答关于这是否严格符合 c11 标准的问题。
简单回答:
在 C 中,您不能将整数(或任何标量值)转换为结构类型,也不能将结构对象转换为整数。
您可以使用指针(如评论中 Qix 所述)实现相同的目的,然后取消引用转换后的对象,但它会通过违反别名规则并可能破坏对齐来调用未定义的行为。
为了使一些 _Generic 表达式正常工作,似乎唯一的选择是将整数类型转换为结构类型,反之亦然,这些无意义的转换只出现在未选择的表达式中。我无法明确回答关于这是否严格符合 c11 标准的问题。
简单回答:
在 C 中,您不能将整数(或任何标量值)转换为结构类型,也不能将结构对象转换为整数。
您可以使用指针(如评论中 Qix 所述)实现相同的目的,然后取消引用转换后的对象,但它会通过违反别名规则并可能破坏对齐来调用未定义的行为。