gpt4 book ai didi

c++ - 位字段的 offsetof 和 sizeof 类似功能

转载 作者:太空狗 更新时间:2023-10-29 21:15:13 26 4
gpt4 key购买 nike

结构和类有offsetof 宏和sizeof 运算符。
有什么方法可以为位域获得类似的功能,以便位域成员的位偏移量位大小可以是有疑问吗?

sizeof 可以用#define field_name_size n 模拟,但是对于offsetof 恐怕使用 会变得太麻烦>#define field_name_offset,从那时起,人们似乎不得不使用一些复杂的公式来考虑位域中的所有前面的成员。

在某些情况下,它可以帮助人们克服手动保持代码与位字段定义同步的需要,这种做法很容易出错。
一个例子是对位域成员的互锁写入,其中需要使用自定义函数来写入此类成员,因为编译器不提供此类功能。
此外,据我所知,编译器可能会以不同方式实现位域布局。此类宏/运算符的可用性也将减少该问题的影响。

最佳答案

Is there any way to get similar functionality for bit fields so that the bit offset and bit size of bit field members can be queried?

不,没有办法实现这一点。无法从位域成员中推断出位大小偏移量。

此外,sizeof() 将始终返回基础类型的大小,最小值为 char,因此 1 是您将检索的最小大小。

关于c++ - 位字段的 offsetof 和 sizeof 类似功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38517476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com