内容纲要
感谢同学 @PTZ123 的提问
Q:tNodeParent()直接将地址0转换成parent变量,之前地址0处的数据不会丢失么。
{% highlight c%}
define tNodeParent(node, parent, name) (parent )((uint32_t)node – (uint32_t)&((parent )0)->name)
{% endhighlight %}
A:不会的,只是强制类型转换生成定样一个指向特定结构的指针,只不过地址是0而已。parent *)0,只是认为0地址处存放着一个类型为Parent的变量/结构体之类,不存在变量的分配