最近在实验一个在STM32上的SPI功能时候,发现一个缺陷,因为只要发送一个Byte,就没用到HAL库了,里面绕了好多圈,他绕好了我都发完好几次数据了.已经设置成发送8位的模式,一开始我的试验方法是这样的.
结果捕获到的数据是:
我明明已经设置成8Bit模式了啊.然后我试试改成8位模式传递参数.两个警告,先不管.
一切正常了.
此时的汇编.
改成这句话,编译就没警告了.
什么,汇编没变化.
是的,因为&和*抵消,然后又满足了转换关系,没错误而且代码没改变.运行也一切正常.算是陷阱吗?
兄弟你太逗了,类型转换有这样用在左值上的吗 ??不过我在void型指针上倒是这么干过,让他支持*p++
@myxiaonia 当然有啦,只赋值寄存器的低八位,汇编就不会发生赋值32位的方法,否则编译出来是赋值32位方法.
@myxiaonia 你可以试试不转换,再看看汇编结果.