offsetof,程序语言,该宏用于求结构体中一个成员在该结构体中的偏移量。

size_t offsetof( structName, memberName );
第一个参数是结构体的名字,第二个参数是结构体成员的名字。该宏返回结构体structName中成员memberName的偏移量。偏移量是size_t类型的。

例程:
#include <stddef.h>
#include <stdio.h>

struct address {
char name[50];
char street[50];
int phone;
};

int main()
{
printf(“address 结构中的 name 偏移 = %d 字节。\n”,
offsetof(struct address, name));

printf(“address 结构中的 street 偏移 = %d 字节。\n”,
offsetof(struct address, street));

printf(“address 结构中的 phone 偏移 = %d 字节。\n”,
offsetof(struct address, phone));

return(0);
}

运行结果:
address 结构中的 name 偏移 = 0 字节。
address 结构中的 street 偏移 = 50 字节。
address 结构中的 phone 偏移 = 100 字节。

Offsetof用法相关推荐

  1. C语言offsetof用法以及其扩展用法

    标题C语言offsetof用法以及其扩展用法 offsetof由于不是标准库的函数,所以得查一下,在stddef.h中,搜索一下编译器的这个头文件位置: 暴力一点,直接在根目录下搜索,find -na ...

  2. C语言:offsetof()的用法

    offsetof()是一个宏 返回的是: 结构体成员 在内存中的偏移量. #include<stdio.h> #include<stddef.h> struct S {char ...

  3. c语言求占用内存sizeof,C语言中sizeof的用法

    定义: sizeof是神圣的sizeof,它是C / C ++中的运算符. 简而言之,其功能是返回对象或类型占用的内存字节数. MSDN上的解释是: sizeofkeyword给出字节,关联的类型(包 ...

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

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

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

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

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

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

  7. container_of 用法解析

    在学习Linux驱动的过程中,遇到一个宏叫做container_of. 该宏定义在include/linux/kernel.h中,首先来贴出它的代码: /**  * container_of - ca ...

  8. C库宏-offsetof()

    在项目开发过程中,发现了offsetof()函数,随即查询了此函数,摘录如下: C库宏 - offsetof() 描述 C库宏offsetof(type, member-designator)会生成一 ...

  9. sizeof与offsetof有关的结构体详解

    sizeof与offsetof在程序中经常遇到,但在面试中其应用使得许多小伙伴吃闭门羹,被面试官问得哑口无言.接下来对两者的应用做详细介绍. 关于sizeof 定义 sizeof乃C/C++中的一个操 ...

最新文章

  1. “挨踢民工”的奇葩生活录
  2. php如何替换 前的空格,php空格如何替换
  3. 我的第一个.NET Core App Windows系统
  4. c语言错误re,c语言malloc之后再realloc的有关问题
  5. 结对和团队项目建议 - 黄金点游戏
  6. resultmap拿不到数据_英雄联盟S10:半决赛数据告诉你huanfeng有多强
  7. NSString的retainCount
  8. bypassuac提权
  9. TI CC2650 学习历程(一)
  10. 【JVM笔记】支配树(Dominator Tree)
  11. 漏洞复现之CVE-2018-1273 Spring Data Commons 远程命令执行
  12. 四巫日来临本周硅铁、铁矿石领跌,铁矿石认沽最高31倍,钢厂利润回升2022.6.17
  13. 【HTML基础-1】HTML标签简介及常用标签
  14. 【腾讯QQ官方正式版下载】基于Internet的即时通信(IM)软件
  15. 上海房产税免征--积分或居住证
  16. CSS 开源资源大全收集
  17. 实现对文件夹进行加密
  18. 网易魔兽怀旧服服务器型号,魔兽世界所有怀旧服服务器名称已出,你觉得哪些名称更好听呢?...
  19. jsp和java前后台的交互
  20. 阿里内部业务中台的实践之路?

热门文章

  1. 安装oculus运行时出现问题_PC单机游戏安装运行常见问题及解决方法
  2. C语言怎么编译对称图形,汇编程序设计显示对称图形.doc
  3. 小米6--安装Charles证书
  4. 芒果iOS开发人事面试问题及答案汇总二
  5. VVC帧间预测(六)BCW
  6. 分布式微服务架构下网络通信的底层实现原理
  7. Vivado IP核之复数浮点数除法 Floating-point
  8. 短信群发商,短代码提供商,语音通话服务提供商(VOIP)
  9. 访问远程 DBISAM 数据库的方法
  10. 寻仙手游维护公告服务器停服更新,寻仙手游2月8日停服更新公告