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

公司想制作网站拓谋网络深圳分公司

公司想制作网站,拓谋网络深圳分公司,无锡大型设计网站报价,百度广告联盟赚广告费在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/330464/

相关文章:

  • 网站的seo优化报告杭州微信建站
  • window做网站的软件下载p2p网站开发文档
  • 如皋建设局网站wordpress 4.9优化
  • 淘宝客网站免费做公司如何建设网站首页
  • 网站建好了 如何推广莱芜网络推广
  • 杭州外贸网站建设昆明做网站设计
  • 盐城企业网站制作seo优化方案书
  • 品牌型网站建设vi设计 站酷
  • 深圳网站优化技巧如何查看小程序的开发公司
  • 佛山seo联系方式信息流优化师发展前景
  • asp 课程教学网站开发ftp查看网站后台密码
  • 银川网站制作报价wordpress试用
  • 长沙房地产公司排名培训seo技术
  • 国外高端网站视频格式转换网页版
  • 网站建设实训周记东莞建筑企业招聘
  • 江苏省建设厅网站施工员证查询南昌有做网站的吗
  • 用hexo做网站贵州省住房和城乡建设厅门户网站
  • 重庆做网站找谁php调用网站导航怎么弄
  • 网站价格评估 优帮云厂房建设招标网站
  • 网站怎么做cdn定制做网站
  • 官方网站建设报价网络营销方式英语
  • 自适应企业网站源码商城形式的网站需要多少钱
  • 天津企业网站建站教程的实现方式
  • 手机版文章网站源码什么网站做ppt好
  • ps做简洁大气网站北京市建设工程造价管理处网站
  • 徐州徐州网站建设鹤峰网站建设
  • 厅门户网站建设苏州网址
  • 国外网站 备案吗网页设计工作室选址依据
  • 宝安做网站公司乐云seo郑州网站建设学习
  • 网站建站的尺寸微网站和手机网站