3507| 3
|
关于#define宏定义 |
1金钱
最佳答案PAout(0) = 1;
这句话会被预处理器替换为:
BIT_ADDR((((((uint32_t)0x40000000) + 0x10000) + 0x0800)+12),0) = 1;
那么GPIOA_ODR_Addr的计算是在代码执行的时候才层层计算还是在编译器编译的时候已经计算好了?
这取决于编译时选择的优化等级,如果是-o0,确实是是层层展开,如果是-o1及以上,会做优化算好了写进去
另外提醒LZ,既然想明白了问题,为什么不打开反汇编看看呢?编译结果一看便知
| ||
| ||
开源QQ群:431600056
|
||
| ||
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。 2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。 |
||
| ||
|手机版|OpenEdv-开源电子网
( 粤ICP备12000418号-1 )
GMT+8, 2025-6-7 15:56
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网