gpt4 book ai didi

我可以使用箭头运算符 (->) 访问我的并集吗?

转载 作者:行者123 更新时间:2023-11-30 21:22:18 25 4
gpt4 key购买 nike

我想知道我是否可以在 union 中使用箭头运算符,但我无权访问我的构建环境。

假设我有以下 union

union max30205_raw_data {
struct {
uint8_t lsb;
uint8_t msb;
};
struct {
uint16_t magnitude_bits:15;
uint16_t sign_bit:1;
};
uint16_t uwrd;
int16_t swrd;
};

我会按照下面的方式填写union的内容,但是我想知道union成员msblsb的访问是否正确?

int32_t max30205_read_reg16_WithDefUnion(char reg, max30205_raw_data *p_unionRawData) {
char aux[] = {0,0}
int32_t error;

if (reg == MAX30205_REG_TEMPERATURE || reg == MAX30205_REG_THYST_LOW_TRIP || reg == MAX30205_REG_TOS_HIGH_TRIP) {

error = twi_max30205_read(&myMax30205Instance,max30205Address,reg,&aux,sizeof(aux));
if(error == 0){
p_unionRawData->msb = aux[0];//IS THIS RIGHT IN C?
p_unionRawData->lsb = aux[1];//IS THIS RIGHT IN C?
}
}
return error;
}

我将调用max30205_read_reg16_WithDefUnion()作为

int16_t max30205MeasureTemperatureWithDefUnion(void) {    
char regT = MAX30205_REG_TEMPERATURE;

max30205_raw_data rawTemp;
rawTemp.msb = 0;
rawTemp.lsb = 0;
rawTemp.swrd = 0;

int16_t temperatureValue = 0;

if (max30205_read_reg16_WithDefUnion(regT,&rawTemp) ==0)
temperatureValue = rawTemp.swrd;

return temperatureValue;
}

最佳答案

是的。 -> 适用于结构体指针和 union 体指针。

关于我可以使用箭头运算符 (->) 访问我的并集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451616/

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