加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否有可能找到C联合的最小尺寸

发布时间:2020-12-16 10:03:49 所属栏目:百科 来源:网络整理
导读:C union(sizeof())的大小是其最大元素的大小. 但是,有什么技巧可以找出可能是最小规模的工会吗? 我的意思是如何实现MACRO的偏移… 解决方法 如果我理解正确,你想要找到一个联合类型的最小成员的大小而不声明该类型的变量,并且不需要引用该成员的类型.获得成
C union(sizeof())的大小是其最大元素的大小.

但是,有什么技巧可以找出可能是最小规模的工会吗?

我的意思是如何实现MACRO的偏移…

解决方法

如果我理解正确,你想要找到一个联合类型的最小成员的大小而不声明该类型的变量,并且不需要引用该成员的类型.获得成员大小的以下技巧可能会起作用,但有点狡猾的一面:

#define membersize(type,member) sizeof(((type *)0)->member)

您必须单独计算每个成员的大小以确定哪个是最小的,因此如果有人向联合添加新成员,您将必须更改确定最小成员大小的代码来解释它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读