当前位置: 首页 > news >正文

陕西建工第三建设集团网站上海纯设计公司

陕西建工第三建设集团网站,上海纯设计公司,spacious wordpress 主题,今天的新闻联播文字版在C语言中,有这样一个特殊的宏,叫offsetof,它的功能是啥呢? 我们来看看它的介绍 它的功能是:返回一个结构体的成员的大小(相较于起始地址的偏移量) 引用代码:http://t.csdnimg.cn…

在C语言中,有这样一个特殊的宏,叫offsetof,它的功能是啥呢?

我们来看看它的介绍

它的功能是:返回一个结构体的成员的大小(相较于起始地址的偏移量) 

引用代码:http://t.csdnimg.cn/q1CdU

#include <stddef.h>
#include <stdio.h>struct struct_test
{float fild1;double fild2;int fild3;short fild4;long long fild5;
};int main(void)
{printf("struct_test size is %lu \nfild1 offset %lu\nfild2 offset %lu \nfild3 offset %lu \nfild4 offset %lu \nfild5 offset %lu\n",sizeof(struct struct_test),offsetof(struct struct_test,fild1),offsetof(struct struct_test,fild2),offsetof(struct struct_test,fild3),offsetof(struct struct_test,fild4),offsetof(struct struct_test,fild5));return 0;
}

 运行结果

struct_test size is 32 
fild1 offset 0
fild2 offset 8 
fild3 offset 16 
fild4 offset 20 
fild5 offset 24

 看完了怎么用,我们来试试模拟实现一下

这里涉及到结构体内存对齐的知识,不了解的可以去我的文章C语言重点突破(4)看看,这里不多赘述。

offsetof要求的是返回结构图成员相对于起始地址的偏移量,这是不是意味着我们还得求出结构体首地址才能实现呢?其实不用,我们只需要将起始地址设为0不就行了?

StructType是结构体类型名,MemberName是成员名。具体操作方法是:

1、先将0转换为一个结构体类型的指针,相当于某个结构体的首地址是0。此时,每一个成员的偏移量就成了相对0的偏移量,这样就不需要减去首地址了。

2、对该指针用->访问其成员,并取出地址,由于结构体起始地址为0,此时成员偏移量直接相当于对0的偏移量,所以得到的值直接就是对首地址的偏移量。

3、取出该成员的地址,强转成size_t并打印,就求出了这个偏移量。

#define offsetof(StructType, MemberName) (size_t)&(((StructType *)0)->MemberName)

http://www.yayakq.cn/news/124248/

相关文章:

  • 惠城网站制作遨翔网站建设
  • 网络舆情网站别人给我们做的网站如何关闭
  • 小说网站模板建站网站建设合同 完整版
  • 企业建立网站的目的麻将网站开发
  • 网站内容优化wordpress付费资源
  • 凡科建站微信小程序装修公司网站建设的意义
  • 山东省监理建设协会网站深圳企业网站定制公司
  • 专业商城网站建设哪家便宜网站地图的使用
  • 有哪些招聘网站江苏省教育现代化建设水平监测网站
  • 做食品网站需要什么资质怎样把网站建设在国外
  • 域名注册服务商网站青岛网站排名方案
  • 网站开发php还是jsp重庆新闻论坛
  • 揭阳网站制作费用会展网站建设情况
  • 高校网站集群平台子站开发天津建设招聘信息网站
  • 对网站建设功能的情况说明手机上如何制作自己的网站
  • 网站被跳转公告怎么写请稍后重试(3008)
  • 商城型外贸网站建设东莞凤岗镇
  • 腾讯云做网站干什么用网站开发数据库设计的作用
  • 石排仿做网站国外开源建站系统
  • 购物网站建设的意义与目的网件app
  • 郑州网站建设公资讯网站源码
  • 新网站如何做流量网站打开显示域名错误
  • wordpress linux 建站知乎网站建设
  • app网站开发淮安做网站杨凯
  • 网站建设 投资合作增城有什么网站做招聘的
  • 柳州网站设计做网站和做网页一样吗
  • 大型购物网站有哪些硅谷电视剧他们做的是网站还是软件
  • 如何开发自己公司的网站网页设计培训的课程类型
  • 天津网站建设外包辽宁省城乡建设集团官网
  • 做车展的网站公司介绍50字