问题描述:
请问这两个宏是什么意思
#define MALLOCREC_EX(t,n) (ALLOC_NO_ZMEM - sizeof(t) > ((n) & ALLOC_NO_ZMEM)) ((t*)MALLOC(sizeof(t)+(n))) :(t*)0
上面ALLOC_NO_ZMEM 值为0x800000001,大于号后问号前的部分 ((n) & ALLOC_NO_ZMEM)) 看不懂
#define AEEGETPVTBL(p,iname) (*((AEEVTBL(iname) **)((void *)p)))
这个为什么把p变为二级指针又变回一级指针,它跟下面的有区别吗?
#define AEEGETPVTBL(p,iname) (((AEEVTBL(iname) *)((void *)p)))
#define MALLOCREC_EX(t,n) (ALLOC_NO_ZMEM - sizeof(t) > ((n) & ALLOC_NO_ZMEM)) ((t*)MALLOC(sizeof(t)+(n))) :(t*)0
上面ALLOC_NO_ZMEM 值为0x800000001,大于号后问号前的部分 ((n) & ALLOC_NO_ZMEM)) 看不懂
#define AEEGETPVTBL(p,iname) (*((AEEVTBL(iname) **)((void *)p)))
这个为什么把p变为二级指针又变回一级指针,它跟下面的有区别吗?
#define AEEGETPVTBL(p,iname) (((AEEVTBL(iname) *)((void *)p)))
问题解答:
我来补答展开全文阅读