将 struct 转换为 int,反之亦然

标签 c generics type-conversion c11

为了使一些 _Generic 表达式正常工作,似乎唯一的选择是将整数类型转换为结构类型,反之亦然,这些无意义的转换只出现在未选择的表达式中。我无法明确回答关于这是否严格符合 c11 标准的问题。

最佳答案

简单的回答:

在 C 中,您不能将整数(或任何标量值)转换为结构类型,也不能将结构对象转换为整数。

您可以使用指针(如评论中的 Qix 所述)实现相同的目的,然后取消引用转换后的对象,但它会通过违反别名规则并可能破坏对齐来调用未定义的行为。

关于将 struct 转换为 int,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30222995/

相关文章:

c - MPI_Isend 段错误

c++ - 如何使用 openAL 从麦克风将实时音频输入记录到文件中? (里面的C++代码)

c - 使用 libxml2 删除 xml 中的空白

c - 将行读入动态分配的字符指针数组时出现段错误

c# - 如何查找和调用特定类型的 .Net TypeConverter?

java - 使用没有泛型的遗留代码时如何避免 Eclipse 警告?

java - 如何在 Java 中对泛型类型设置约束?

linq - 使用反射比较通用/动态 linq 谓词中的子属性

java - 如何组合三个连续的Modbus寄存器以获得整数值?

java - 为什么自动装箱在数组中不起作用?