模拟实现offsrtof

news2025/1/12 9:51:09

写一个宏,计算结构体中某变量对于首地址的偏移

 设计思路:
 1.偏移量,用每个所求元素的地址减去结构体初始值的地址可得
 2.如计算图示,第一个元素的偏移量=结构体初始值必为0,第二个为4,其次为6,最后为8。
(1)故可以将初始值地址设置为0,0所指向的地址的距离=变量对于首地址的偏移值
(2)将0强制转换为结构体类型名,使得初始值置0(这个方法只能在宏定义中使用,不能在函数中使用)

​​​​​​​

错误:

1.老是搞不清要传的参数是“struct”、"struct MyStruct"、"struct s"、"MyStruct s"、"s"中的哪个

2.有思路不会实现,比如强转转哪个参数不确定

#define MY_OFFSRTOF(struct_name,member_name) (int)&(((struct_name*)0)->member_name)
typedef struct MyStruct
{
	int a;
	short b;
	char c;
	int d;
}s;
int main()
{
	printf("%d\n", MY_OFFSRTOF(s, a));
	printf("%d\n", MY_OFFSRTOF(s, b));
	printf("%d\n", MY_OFFSRTOF(s, c));
	printf("%d\n", MY_OFFSRTOF(s, d));
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1037241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序更改AI类目-深度合成-AI绘画/AI问答教程

实测截图 准备材料: 1.营业执照 2.企业公章 一、首先我们需要到百度智能云进行企业认证 https://cloud.baidu.com/ 注册登录后进行企业认证 认证成功后申请千帆大模型平台和AI作画 开通付费服务 开通完以后点击右上角财务 选择合同管理 申请合同 将所有的选…

如何利用Arcgis进行地统计学分析(一):地统计学分析概念及其分析流程

一、地统计分析概念 地统计(Geostatistics)又称地质统计,也可以称为空间统计分析,其是统计学的一个分支。地统计学是以区域化变量理论为基础,以变异函数(variogram)为基本工具来研究分布于空间&…

Python 潮流周刊#21:如何提升及测量 Python 代码的性能?

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中三则分享,不代表全部内容都是该主题,特此声明。 本周刊由 Python猫 出品,精心筛选国内外的 250 信息源,为你挑选…

ruoyi-nbcio增加websocket与测试页面

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 为了后面流程发起等消息推送&#xff0c;所以需要集成websocket。 1、后端增加websoket支持 首先在framework模块里的pom.xml增加websocket <dependency…

肖sir__项目实战讲解__004

项目实战讲解 一、项目的类型 金融类&#xff1a; 保险(健康险理财险)、证券、基金(股票型基金、混合型基金、指数型基金、债券型基金、 天天基金网&#xff08;ETF基金、货币型基金、量化基金)、银行、贷款、信用卡、外汇、二元期权、期货原油、blockchain、 数字货币、黄金白…

Nginx环境搭建、负载均衡测试

Nginx环境搭建、负载均衡测试 系统环境&#xff1a; win10&#xff0c;IDEA2020&#xff0c;JDK8 一、nginx环境搭建 1.ngxin下载 Nginx官网下载&#xff1a; http://nginx.org/en/download.html Nginx有三种版本&#xff0c;分别是Mainline version&#xff08;开发版&…

Vue load 页面报错:Error: Request failed with status code 404 ###createError.js

vue 项目 npm run dev 之后一切正常 在打开页面 http://localhost:8080/ 的时候后台报错 Error: Request failed with status code 404 at createError (\node_modules\axios\lib\core\createError.js) 网上各种查找原因&#xff0c;说是后台接口对接跨域问题&#xff0c;但…

C++——list

作者&#xff1a;几冬雪来 时间&#xff1a;2023年9月24日 内容&#xff1a;C板块list知识讲解 目录 前言&#xff1a; 什么是list&#xff1a; 遍历list&#xff1a; insert&#xff1a; find&#xff1a; insert与erase&#xff1a; merge&#xff1a; unique&am…

TLS/SSL(十) session缓存、ticket 票据、TLS 1.3的0-RTT

一 TLS优化手段 TLS 为了提升握手速度而提出优化手段,主要是减少TLS握手中RTT消耗的时间关于session cache和session ticket,nginx关于ssl握手的地方都有影子 [指令] https面经 ① session 缓存 resume: 重用,复用 案例&#xff1a; 第二次访问www.baidu.com 说明&#x…

Linux-多路转接-epoll

epoll 接口认识epoll_createepoll_ctlepoll_wait epoll工作原理在内核中创建的数据结构epoll模型的一个完整工作流程 epoll工作模式LT-水平触发ET-边缘触发两种方式的对比 epoll的使用场景对于poll的改进惊群效应什么是惊群效应如何解决惊群效应原子操作/mutex/spinlock如何选择…

数据结构(java)--队列1

一、我们还是依旧引入一个小例子&#xff08;银行排队&#xff09;&#xff1a; 需要取号排队&#xff0c;服务完下一个 二、队列介绍 1&#xff09;队列是一个有序列表&#xff0c;可以用数组或是链表来实现 2&#xff09;遵循先入先出的原则。即&#xff1a;先存入队列的数…

世界前沿技术发展报告2023《世界信息技术发展报告》(三)量子信息技术

&#xff08;三&#xff09;量子信息技术 1. 概述2. 量子计算2.1 阿里巴巴达摩院成功研制两比特量子芯片&#xff0c;单比特操控精度超99.97%2.2 加拿大Xanadu公司开发出可编程光量子计算机2.3 美国英伟达公司为经典-量子混合计算推出开发架构2.4 日本国家自然科学研究所开发出…

el-tree实现菜单功能

用到element tree组件&#xff0c;需要了解他的一些方法 <template><div><!-- default-expand-all 默认展开全部数据 --><!-- expand-on-click-node 只有点击箭头才会收缩节点 --><!-- check-on-click-node 点击文本选中 --><!-- show-check…

cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装

文章目录 cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装概述笔记做PCB封装出报告 - Padstack Usage Report做原理图封装END cadence - 在allegro中出报告(Padstack Usage Report)来辅助制作orcad原理图封装 概述 现在做封装, 还是手工弄. 在…

1 MySQL 高级(进阶) SQL 语句(一)

目录 1 MySQL SQL 语句 1.1SELECT 1.2 DISTINCT 1.3 WHERE 1.4 AND OR 1.5 in 1.6 BETWEEN 2 通配符 ----通常通配符都是跟 LIKE 一起使用的 2.1 LIKE 2.2 ORDER BY 3函数 3.1数学函数 3.2 聚合函数 3.3 字符串函数 4 GROUP BY 4.1 HAVING 5 别名 6 子查询 …

《开发实战》17 | 异步处理好用,但非常容易用错

大多数业务项目都是由同步处理、异步处理和定时任务处理三种模式相辅相成实现的。区别于同步处理&#xff0c;异步处理无需同步等待流程处理完毕&#xff0c;因此适用场景主要包括&#xff1a; 服务于主流程的分支流程。比如&#xff0c;在注册流程中&#xff0c;把数据写入数…

基于微信小程序的健身私教预约系统设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)

文章目录 前言运行环境说明用户微信小程序端主要功能有&#xff1a;教练微信小程序的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考…

浅谈基于LoRa技术下智能建筑能耗管理系统的分析与设计

安科瑞 华楠 摘要&#xff1a;城市建设步伐加快背景下&#xff0c;对城市建筑能耗管理系统的应用提出更高要求。从当前各类公共建筑物运营情况看&#xff0c;能源消耗问题仍较为突出&#xff0c;传统依托于计算机、测控单元与通讯设备单位工具的系统管理模式&#xff0c;并不能…

会声会影2023mac电脑免费永久版视频编辑软件

会声会影是由Corel公司制作的一款功能强大的视频编辑软件&#xff0c;具有图像抓取和编修功能&#xff0c;可以抓取、转换MV、DV、V8、TV和实时记录抓取画面文件&#xff0c;并提供有超过100种的编制功能与效果&#xff0c;可导出多种常见的视频格式&#xff0c;甚至可以直接制…

调用ecology的webservice创建流程

开发过程 一、用超级管理员账号登录系统。 二、在地址栏为查看接口地址 IP:端口号/services 三、进入WorkflowServicesAPI 四、打开IDEA编译器&#xff0c;创建项目。 五、选择创建webservice客户端 六、进入项目工程后&#xff0c;检查配置是否正确。代码生成的路径&#x…