16位寄存器工作在8位模式下的编译器缺陷

/ 3评 / 0

最近在实验一个在STM32上的SPI功能时候,发现一个缺陷,因为只要发送一个Byte,就没用到HAL库了,里面绕了好多圈,他绕好了我都发完好几次数据了.已经设置成发送8位的模式,一开始我的试验方法是这样的.

结果捕获到的数据是:

我明明已经设置成8Bit模式了啊.然后我试试改成8位模式传递参数.两个警告,先不管.

一切正常了.

此时的汇编.

改成这句话,编译就没警告了.

什么,汇编没变化.

是的,因为&和*抵消,然后又满足了转换关系,没错误而且代码没改变.运行也一切正常.算是陷阱吗?

 

  1. myxiaonia说道:

    兄弟你太逗了,类型转换有这样用在左值上的吗 ??不过我在void型指针上倒是这么干过,让他支持*p++

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注