offsetof宏—求结构体中一个成员在该结构体中的偏移量

该宏用于求结构体中一个成员在该结构体中的偏移量。

该宏被写作:

size_t offsetof( structName, memberName );

第一个参数是结构体的名字,

第二个参数是结构体成员的名字。

该宏返回结构体structName中成员memberName的偏移量。

偏移量是size_t类型的。

=========================================================================

#include<stdio.h>
#include<stdlib.h>
#include <stddef.h>//offsetof(type,member);
typedef struct
{
  char a;
  int b;
  int c;
}node_t;
int main()
{
  unsigned char *p = NULL;
  node_t node;
  node.a = 1;
  node.b = 22;
  node.c = 33; 
 
  p = (unsigned char *)&node;
  printf("size = %d\n",offsetof(node_t,c));
  printf("node.c = %d\n",*(p+offsetof(node_t,c)));
  return 1;  
}
/*
output:
size = 8
node.c = 33;
*/


转载于:https://my.oschina.net/crooner/blog/221954

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值