










Linux内核代码里的一个宏(Linux内核里很多结构体之间是通过某一成员变量相互寻址的),感觉挺巧妙。大概意思是:
#define get_addr(type, member, mem_addr) (type*)(mem_addr - &(((type*)0)->member))
typedef struct{
int a;
int b;
int c;
}test_t test;
addr = get_addr(test_t, c, &test.c);
这样可以绕过字节对齐问题。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。