我有一个
structure {
int a;
char b;
} st;
Run Code Online (Sandbox Code Playgroud)
有没有办法对结构成员进行类型转换st.a?因为在我想要它的int几个地方,在我想要的几个地方Char*
Fre*_*abe 10
我建议使用联盟:
struct {
union {
int a;
char *ptr;
} u;
char b;
} st;
Run Code Online (Sandbox Code Playgroud)
在sizeof(int) == sizeof(char*)hold 的假设下,您可以使用st.u.a或者访问内存中的相同值st.u.ptr.
对于它的价值,考虑使用size_t而不是int作为a字段的类型.这样,你的代码在64位版本中仍然是正确的(其中一个int可能仍然是32位但指针是64位).