【发布时间】:2014-03-06 13:04:24
【问题描述】:
我刚刚阅读了Extending a struct in C,我似乎不明白代码的某些部分是做什么的。
这是他当前的代码:
typedef struct A {
int x;
}A;
typedef struct B {
A a;
int d;
}B;
void fn(){
B *b;
((A*)b)->x = 10;
}
我想知道,((A*)b)->x = 10; 怎么变成了b->a.x = 10;?
你如何解释那行代码?
编辑
(A*) 和 (A*)b 做什么?
【问题讨论】:
-
请注意
b必须初始化为指向一个有效的变量。 -
代码示例是同一个单词,问题几乎相同,这几乎肯定是重复的。