假设我们有一个像这样的结构体
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
希望我的问题是清楚的
是的,你的问题很清楚,但遗憾的是没有-这样的功能不存在。也许,有一种方法可以用其他方法达到你想要做的事。
不,标准库中不存在这样的函数。此外,该语言不能保证您对位字段顺序的假设与语言实现相匹配。