我想在Dart中实现下面的C代码:
union AuxiliaryHardwares {
uint16_t all = 0;
struct {
hasRs485: 1;
hasCanbus: 1;
hasRelay0: 1;
hasRelay1: 1;
};
};
AuxialiaryHardwares ah;
ah.all = 123; // Or any value I read from the network
if (ah.hasCanbus) {
// blah blah
}
if (ah.hasRelay0) {
// blah blah
}
1条答案
按热度按时间oalqel3c1#
没有语言支持将整数的单个位作为整数或布尔变量访问。
传统上,你会自己写。
您可能会在某个地方找到一个位集类,它对访问整数的各个位进行抽象,但这将是额外的开销,而收益非常小。
我预计“内联类”将是将来封装整数的方式。