关于结构体类型强制转换问题【求解】
问题描述很简单,但是我想不明白:
int a;
char b;
a = (int)b;
这个是合法的。
但是为什么结构体类型不合法。
struct a {
int a;
};
struct b {
int b;
};
struct a aa;
struct b bb;
aa = (struct a)bb;
为什么不合法。和int转换是一样的。求指点。。
[解决办法]
并不是所有的类型都可以互相转换, 这个没有可疑惑的.
你想要的是操作内存:
struct a aa;
struct b bb;
struct b *p = &bb;
p = (struct a*)bb;
printf("%d\n", p->a);