得到结构体中成员的偏移
来源:互联网 发布:软件测试管理工具qc 编辑:程序博客网 时间:2024/04/26 14:19
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int a;
char b;
int c;
float d;
double e;
char g;
char h;
}test_T;
#define offset(T, f) ((int)(&(((T*)0)->f)))
#define print_f(T, f); printf(#T"->"#f": %d/n", offset(T, f));
int main(int argc, char* argv[])
{
print_f(test_T, a);
print_f(test_T, b);
print_f(test_T, c);
print_f(test_T, d);
print_f(test_T, e);
print_f(test_T, g);
print_f(test_T, h);
return 0;
}
#define offset(T, f) ((int)(&(((T*)0)->f)))原理:
把0强制转换成指向数据类型的指针,再把它的成员的地址强制转换成数字,就得到了成员在结构体中的偏移量。
- 得到结构体中成员的偏移
- (记录)如何取结构体中成员的偏移
- 求结构体中成员的偏移值
- gdb 显示结构体中成员的偏移量
- 把“0”强制转化为结构体指针类型得到成员变量的偏移量
- 结构体中成员变量偏移量
- 求结构体成员的偏移量
- 结构体成员变量的偏移值
- 结构体成员偏移量的计算
- 如何计算结构体大小和结构体中成员的内存偏移
- 结构体成员偏移地址
- 结构体成员偏移量
- C++ 得到成员变量的偏移值
- C++ 得到成员变量的偏移值
- C++得到成员变量的偏移值
- 结构体成员地址在结构体内的偏移
- ANSI C中获取结构体成员偏移量量的办法
- 用宏定义求结构体中某一个成员的偏移量
- String,StringBuffer与StringBuilder
- 创业之初的小团队
- (转)C++中extern “C”含义深层探索
- 谈的话马上得到了聚众传媒创始人虞峰、博客中国创始人方兴东及携程网创始人之一的季琦等三位嘉宾的一致响应
- Oracle manage password security resource
- 得到结构体中成员的偏移
- AS3 技巧- 利用internal namespace 动态存取scope chain 的区域变数
- Oracle manage user
- C++ enum类型的一个更好的用法
- 关于C++写的ocx控件
- 都在决定自己是坦白还是不坦白的策略选择上左右为难
- Redboot 常用命令
- open函数参数及返回值
- OSG