【漫步刷题路】-模拟实现offsetof

简介: 代码讲解:把0强转为结构体指针,向后可以访问一个结构体认为后面存放了一个结构体变量

🚗库函数原型

78adc3d4542d4c42862da0d4aa2a7aa6.png

需要引用头文件:#include<stddef.h>

  • 第一个参数:结构体类型
  • 第二个参数:结构体成员名字

作用:求结构体成员相对于起始位置的偏移量


🚓实例:

132b0927d9204bba84de156a64960a34.png

#include<stddef.h>
struct S
{
  char c;
  short s;
  int i;
};
int main()
{
  printf("%u\n", offsetof(struct S, c));//0
  printf("%u\n", offsetof(struct S, s));//2
  printf("%u\n", offsetof(struct S, i));//4
  return 0;
}

🚕模拟实现offsetof - 宏


🚅 图解

例子1:

82b373be8a174c0ea78010041698a058.png

代码讲解:

把0强转为结构体指针,向后可以访问一个结构体

认为后面存放了一个结构体变量

ddc4d7c4808549dcb59c85c4629b7f75.png

188db70397194d20a5d36a77b2f05553.png

🚂代码

#include<stddef.h>
#define OFFSETOF(struct_type,mem_name)  \
       (size_t)(&((struct_type*)0)->mem_name)
struct S
{
  char c;
  short s;
  int i;
};
int main()
{
  printf("%u\n", offsetof(struct S, c));//0
  printf("%u\n", offsetof(struct S, s));//2
  printf("%u\n", offsetof(struct S, i));//4
  printf("%u\n", OFFSETOF(struct S, c));//(size_t)(&((struct S*)0)->c) ->0
  printf("%u\n", OFFSETOF(struct S, s));//(size_t)(&((struct S*)0)->s) ->2
  printf("%u\n", OFFSETOF(struct S, i));//(size_t)(&((struct S*)0)->i) ->4
  return 0;
}
相关文章
|
6月前
|
人工智能 算法 前端开发
AI 应用软件的外包开发
2026年国内AI英语类APP外包开发市场成熟但陷阱多:价格分三档(5万起MVP、20–50万专业级、80万+专家级),核心看TTFT<400ms、Token成本优化、数据安全及备案支持。避坑关键:验Agent编排能力、音视频工程经验、Prompt资产归属,慎防黑盒交付与算力转嫁。(239字)
|
3月前
|
人工智能 弹性计算 5G
【AI 尝鲜实验室】上新 | MiMoCode:终端原生 AI 编程助手,越用越懂你
MiMoCode是小米MiMo团队开源的终端原生AI编程助手(GitHub 10k+ Star,MIT协议),支持读写代码、执行命令、Git管理及跨会话项目上下文记忆。本实验通过阿里云计算巢一键部署至云端ECS,开箱即用,面向全栈/独立开发者及运维工程师。
|
9月前
|
传感器 网络协议 算法
《多账号同源识别核心技术拆解:从行为指纹到身份锚定的实操逻辑》
本文聚焦同一用户多账号同源识别的核心技术路径,跳出传统单一标识校验思维,深度拆解行为、设备、网络、数据等多维度识别手段的实操逻辑。从行为基因图谱构建、硬件隐性特征聚合,到网络轨迹指纹链打造、交互惯性图谱搭建,再到跨账号数据锚点联动,系统梳理各层级核心技术的落地思路,重点提炼隐性特征萃取、多维度协同校准等关键方法,规避标识篡改、IP切换、行为伪装等识别痛点。通过构建多维度特征融合校准体系,平衡识别精度与隐私合规,形成“全链路特征协同-置信度分级决策-误判动态修正”的闭环逻辑,为复杂场景下多账号精准识别提供兼具深度与实操性的技术参考,助力搭建抗干扰、高精准的同源账号识别体系。
789 11
|
3月前
|
人工智能 算法 安全
GEO培训靠谱吗?哪家知名机构无套路不割韭菜?
GEO培训行业新兴但鱼龙混杂,2025年将迎来爆发。本文提供实用“防割指南”:剖析行业AB面,揭露“神效焦虑”“卖代理”“教投机”三大套路,并给出“看人、看体系、看合规、看口碑”四大筛选标准,助你理性避坑,掌握AI时代真正的内容竞争力。(239字)
|
3月前
|
存储 监控 负载均衡
服务器经常宕机是哪些原因造成以及解决办法,如何查找原因
本文详解服务器宕机的五大主因(硬件故障、资源耗尽、软件缺陷、网络问题、配置错误)及对应排查步骤(日志分析、性能诊断、服务验证、硬件检测、网络测试),并提供监控、冗余、维护、容灾与压测等预防措施,助您快速定位、高效恢复、主动防范。(239字)
|
10月前
|
Linux 编译器 PHP
PHP-5.2.1.tar.gz 离线安装教程:从源码编译到配置的详细步骤(附安装包)
下载PHP 5.2.1源码包并解压至服务器,确保已安装gcc、make等编译工具及libxml2-devel库。进入源码目录后,根据需求配置编译选项(支持Apache模块或命令行版本),依次执行make编译、make install安装,并手动复制php.ini配置文件至指定目录,完成PHP环境搭建。
|
9月前
|
存储 开发者 Python
Python语言程序基本结构详解(零基础也能看懂的Python程序结构入门指南)
教程来源:https://www.vpshk.cn/教程Python程序结构清晰,包含导入模块、变量定义、函数封装和主逻辑四部分。从“Hello, World!”入门,掌握基本结构是学习Python的关键,有助于编写易读、可维护的代码,为进阶打下坚实基础。
|
6月前
|
人工智能 自然语言处理 数据可视化
【深度建议】打破设备壁垒:关于通义千问实现“全平台智能语音交互”与“知识闭环”的五大核心建议
作为通义千问深度用户,本文基于跨端真实体验,提出五大优化建议:①全平台语音输入引擎(补PC端短板);②沉浸式声音陪伴系统;③智能笔记与待办管理;④语义级长对话检索与跳转;⑤紧急修复移动端搜索点击失效Bug。聚焦效率与温度,助力千问成为更懂你的AI伙伴。(239字)
1075 1
|
8月前
|
人工智能 自动驾驶 算法
聊聊哈啰出行的测试岗:一位老测试的真心话
哈啰出行作为阿里系出行头部企业,业务覆盖两轮、四轮、自动驾驶等多元场景,测试岗技术体系规范,自动化与硬件测试经验丰富,适合1-3年新人快速成长。薪资中等,加班较多,适合作为职业跳板积累前沿项目经验,但追求高薪或平衡生活者需谨慎选择。

热门文章

最新文章