[STM32F0] 如何解决“表达式必须是指向完整对象类型的指针”错误?

[复制链接]
1139|28
mnynt121 发表于 2025-9-13 21:29 | 显示全部楼层
(uint8_t)(...) 将地址计算结果转换为普通整型值(而非指针),此时它只是一个临时数值,不再是内存地址,因此不能作为左值赋值。
mickit 发表于 2025-9-13 22:53 | 显示全部楼层
地址计算结果强制转换为uint8_t后,得到的是一个临时值(rvalue),无法被赋值。
mikewalpole 发表于 2025-9-14 07:50 | 显示全部楼层
(uint8_t*) 将地址值转换为 uint8_t*
jackcat 发表于 2025-9-14 08:19 | 显示全部楼层
禁止向非指针类型的左值赋值。              
albertaabbot 发表于 2025-9-14 09:51 | 显示全部楼层
CB[arr_index].baseaddress + ... 计算得到的是一个地址值(数值类型)。
(uint8_t)(...) 将地址值强制转换为 uint8_t(8位整数),此时它是一个右值(rvalue),即临时数值,而非内存位置。
ingramward 发表于 2025-9-14 11:48 | 显示全部楼层
写法错误地将地址计算结果转换为uint8_t(一个字节数据),而不是uint8_t*(指向字节的指针),导致赋值操作的目标是一个临时数值而非内存地址。
macpherson 发表于 2025-9-14 15:28 | 显示全部楼层
转换为指针后解引用              
kmzuaz 发表于 2025-9-14 16:13 | 显示全部楼层
临时值不能被赋值              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部