如何在使用位域时获得起始位号(c++)

  • 本文关键字:c++ 位域 c++
  • 更新时间 :
  • 英文 :


假设我们有一个像这样的结构体

struct my_struct
{
uint16_t a : 2;
uint16_t b : 6;
uint16_t c : 8;
}my_struct
my_struct temp;

是否有办法得到temp.b的起始/结束位?换句话说,c++中是否有一个语法/内置函数可以完成以下操作:

first_function(temp.b) // returns 2, since b starts on the second bit of the struct in the computers memory
second_function(temp.b) // Returns 8, since the last bit of b is the 8th bit of the struct in the computers memory

希望我的问题是清楚的

是的,你的问题很清楚,但遗憾的是没有-这样的功能不存在。也许,有一种方法可以用其他方法达到你想要做的事。

不,标准库中不存在这样的函数。此外,该语言不能保证您对位字段顺序的假设与语言实现相匹配。

相关内容

  • 没有找到相关文章