offsetoff-用来计算结构体存储时元素存储地址相对于起始存储地址的一个偏移量的一个宏

实现代码:

#include<stdio.h>

#define Offsetof(struct_name,member_name)  (int)&(((struct_name*)0)->member_name)
struct S
{
    int a;
    char b;
    double c;
};
int main()
{
    struct S s = { 0 };
    printf("%d\n", Offsetof(struct S, a));
    printf("%d\n", Offsetof(struct S, b));
    printf("%d\n", Offsetof(struct S, c));

return 0;
}

Offsetof的实现相关推荐

  1. offsetof使用小结

    先上例子 #include <stdio.h> #include <stdlib.h>/* offsetof example */ #include <stddef.h& ...

  2. 【C语言】宏offsetof的模拟实现 (计算结构体中某变量相对于首地址的偏移)

    首先我们应该特别留意 : offsetof 是一个宏,并非是一个函数 ! 宏offsetof的介绍 : 参数:第一个是结构体类型名称,第二个是结构体成员名 返回类型:size_t无符号整形 引用的头文 ...

  3. c语言 offsetof函数,C 库宏 - offsetof()函数

    宏offsetof 标准库stddef.h 定义 size_t offsetof(type, member); 分析 C 库宏 offsetof(type, member) 会生成一个类型为 size ...

  4. linux中offsetof与container_of宏定义

    linux内核中offsetof与container_of的宏定义 #define offsetof(TYPE, MEMBER)    ((size_t) &((TYPE *)0)->M ...

  5. offsetof宏和container_of宏

    文章目录 1 offsetof宏 1.1 宏的作用 1.2 编译器做了什么 2 container_of宏 2.1 ({})是什么? 2.2 typeof 2.3 原理分析 1 offsetof宏 1 ...

  6. offset linux,Linux 宏定义之 offsetof 与 container_of(十九)

    今天我们来看看 Linux 中的两个经典的宏:offsetof 与 container_of.下来我们先来看看它们两个的宏定义,如下#ifndef offsetof #define offsetof( ...

  7. C语言 泛型链表 如何计算(结构体中各元素)相对内存地址?(字节对齐,结构体对齐)offsetof()函数 ( (struct X*)0 ) -> Y)语法(匿名结构体)

    示例: typedef struct _user {char name[20];char sex[20];int age;struct list_head mylist;//自定义结构体里保存双向循环 ...

  8. container_of 和 offsetof 宏详解

    在linux内核链表中,会遇到两个宏. 在include/linux/stddef.h中,有这样的定义 #define offsetof(TYPE, MEMBER) ((size_t) &(( ...

  9. Linux / offsetof 和 container_of

    @time 2019-07-10 @author Ruo_Xiao @revision linux 2.6.11 1. offsetof (1)原型 /** @member TYPE : 结构体原型. ...

  10. 自己实现了一个C语言例程,加深对宏、大小端、typeof宏、offsetof宏、指针变量、结构体、联合体的理解

    如题所述,最近时间在复习C语言.自己实现了一个C语言例程,以加深对宏.大小端.typeof宏.offsetof宏.指针变量.结构体.联合体的理解.关于细分知识后续有空再填充- swap宏的使用: 对应 ...

最新文章

  1. 面试被问到Redis实现发布与订阅,手摸手教
  2. Linux基础篇之文本、数据流处理命令(sed uniq grep awk wc)
  3. 带有Swagger的Spring Rest API –集成和配置
  4. 10分钟带你学会微信小程序的反编译
  5. mysql报tns无监听_oracle提示TNS:无监听程序的解决办法
  6. 华为手表表盘的数字什么意思_知识 手表防水是什么意思?
  7. arduino esp8266_Arduino-httpupdate-OTA-esp8266升级探险记
  8. GoogleNet_V3实验
  9. oracle运维dba面试题,一份DBA面试题目---亲身经历
  10. UVA10178 Count the Faces.【并查集】
  11. memset初始化值的效率秒杀for循环
  12. Python一个命令开启http下载服务器
  13. 完整的省市县三级联动
  14. Anroid Studio开发---日记本App
  15. 【flutter】上架马甲包过审
  16. HTML5期末大作业:在线电影网站设计——电影速递网(12页面)含登录注册HTML+CSS+JavaScript
  17. 【软件测试】8年资深测试解析,软件测试行业情报,风风雨雨......
  18. (转)中科院理论物理所考研…
  19. 使用Chef部署OpenStack (by quqi99)
  20. 探秘亿联网络最新声学实验室

热门文章

  1. 某智能家居项目框架学习总结
  2. Android 自定义View----离屏缓冲和图像混合模式(圆形头像)
  3. 用Adobe PhotoshopCC (简称:PS)随便做手机icon
  4. 名悦集团盘点那些开车不能有的小动作,后患无穷
  5. 很多人遇到过3194错误的解决方法,100%有效!
  6. java判断字符的大小写_java 字符串中判断字母大小写方法
  7. 如何使用 js 过滤文本框表情符号
  8. matlab怎么读取qcif,Mesa Imaging SwissRanger SR4000 深度相机
  9. COSCon'22 无锡会场回顾 | 打开新世界,开源在无锡
  10. mac开机没声音怎么办?教你 2 招轻松关闭/恢复Mac开机音效「咚」