永发信息网

[A THIRD DIMENSION]公司的作品有哪些?

答案:1  悬赏:30  手机版
解决时间 2021-01-28 09:42
  • 提问者网友:低吟詩仙的傷
  • 2021-01-27 15:58
[A THIRD DIMENSION]公司的作品有哪些?
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-01-27 16:51
TAILQ_FOREACH和TAILQ_FIRST的实现代码略。
TAILQ_LAST的作用是计算出队列最后一个元素的地址,它的实现就有点难懂了,用到了TAILQ_ENTRY和TAILQ_HEAD内存布局一样的知识点:
#define TAILQ_LAST(head,headname)  
(*(((struct headname *)((head)->tqh_last))->tqh_last))           
队列中的tqh_last字段的值是队列最后一个元素的tqe_next的地址,不是最后一个元素的地址。怎么计算出最后一个元素的地址呢? (structheadname *)(head)->tqh_last获得最后一个元素的tqe_next的地址,并强制转换成队列指针类型,
再对其用->tqh_last 就相当于获得了最后一个元素的tqe_prev地址(因为TAILQ_ENTRY和TAILQ_HEAD内存布局一样),然后解引用就得到了最后一个元素 的地址。很巧妙!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯