offset偏移量_如何调用结构体

offset偏移量_如何调用结构体一、函数原型#include<stddef.h>size_toffsetof(type,member);offsetof原型定义:defineoffsetof(t,m)((size_t)&((t*)0)->m)1、关于&((t*)0)的解释1-1:(type*)0作用是强制类型转换,将0转换为(type*)类型,一个type指针类型1-2:编译器在会将&((t*)0)优化为直接取地址,因为这种表达是:先访问空间,再取空间的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、函数原型

#include <stddef.h>
size_t offsetof(type, member);

offsetof原型定义:define offsetof(t,m) ((size_t)&((t *)0)->m)
在这里插入图片描述
1、关于&((t *)0)的解释

1-1(type *) 0作用是强制类型转换,将0转换为(type*)类型,一个type指针类型
1-2:编译器在会将 &((t *)0) 优化为直接取地址,因为这种表达是: 先访问空间, 再取空间的地址,就相当于直接取地址。

2、注意:组成结构的字段的大小在不同的实现中可能不同,编译器可能在字段之间插入不同数量的填充字节。因此,元素的偏移量不一定是前面元素大小的总和。

二、函数demon,截取自man手册

#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{ 
   
	struct s { 
   
		int i;
		char c;
		double d;
		char a[];
	};

	/* Output is compiler dependent */

	printf("offsets: i=%ld; c=%ld; d=%ld a=%ld\n",
			(long) offsetof(struct s, i),
			(long) offsetof(struct s, c),
			(long) offsetof(struct s, d),
			(long) offsetof(struct s, a));
	printf("sizeof(struct s)=%ld\n", (long) sizeof(struct s));

	exit(EXIT_SUCCESS);
}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172097.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月22日 上午10:00
下一篇 2022年8月22日 上午10:00


相关推荐

  • 科普:史上最强单片机

    科普:史上最强单片机MCU 是 Microcontrol 的简称 中文叫微控制器 俗称单片机 是把 CPU 的频率与规格做适当缩减 并将内存 计数器 USB A D 转换 UART PLC DMA 等周边接口 甚至 LCD 驱动电路都整合在单一芯片上 形成芯片级的计算机 为不同的应用场合做不同组合控制 诸如手机 PC 外围 遥控器 至汽车电子 工业上的步进马达 机器手臂的控制等 都可见到 MCU 的身影 那么如何零基础学习电子产品设计呢 单片机发展简史单片机出现的历史并不长 但发展十分迅猛 它的产生与发展和微处理器 CPU 的产

    2026年3月26日
    2
  • 节流函数-throttle

    节流函数-throttle1 功能 throttle 和防抖一样都是减少高频率执行代码的执行频率 2 使用场景 oninputonres 等等 3 节流 vs 防抖防抖 高频执行函数 降低到执行 1 次节流 高频执行函数 降低到执行 n 次 1

    2026年3月16日
    2
  • 【电容】关于电容,这篇说得太详细了

    【电容】关于电容,这篇说得太详细了转载自 http emakerzone com article 229 关键字 薄膜电容 电解电容 陶瓷电容 铝电解电容 钽电容 安规电容之前的文章中 介绍了电感的一些知识 本文将谈谈电容 介绍电容的知识和如何选型 一 电容的基本原理电容 和电感 电阻一起 是电子学三大基本无源器件 电容的功能就是以电场能的形式储存电能量 以平行板电容器为例 简单介绍下电容的基本原理如

    2026年3月17日
    2
  • Floyed算法[通俗易懂]

    Floyed算法[通俗易懂]这一讲简单介绍一下Floyed算法。话不多说,先放一道题帮助理解(其实是懒得描述具体应用场景)。FroggerFreddyFrogissittingonastoneinthemiddleofalake.SuddenlyhenoticesFionaFrogwhoissittingonanotherstone.Heplanstovisit

    2022年6月29日
    31
  • python 字符串方法isdigit()

    python 字符串方法isdigit()

    2021年10月22日
    82
  • 解决:error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No

    解决:error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No解决OpenSSL:errorwhileloadingsharedlibraries:libcrypto.so.1.1:cannotopensharedobjectfile:No解决OpenSSL:errorwhileloadingsharedlibraries:libcrypto.so.1.1:cannotopensharedobjectfil…

    2022年6月29日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号