在线等#define NextFree(p) (* (void **) (p))

来源:百度知道 编辑:UC知道 时间:2024/06/12 20:36:44
请问高手,在操作系统源代码中有一句这样的代码,
#define NextFree(p) (* (void **) (p))
这句话是什么意思,为什么?如果答案符合心意的话追加50分。

这个是宏函数

NextFree(p)代表了(* (void **) (p)) 括号的作用是防止副作用;
分析 (void **) (p)是一个指向void型的void指针,他可以是任意类型,你可以传递给他Int,char。。。然后再取一个*就是他的地址。一般三个的都是作为函数的参数,也就是传递一个指向指针的指针的地址传递操作用。其实根据优先级,不用想得太复杂。

如果还不明白建议看看《c陷阱和缺陷》里头有这些知识