stm32中,为什么MDK会报错?

2024-11-08 03:08:18
推荐回答(1个)
回答1:

这与STM32无关,是C语言的语法要求,C语言要求,变量定义之前,不得有任何内存的读写操作,比如赋值,函数调用等等,都涉及到内存的操作,这些动作,不得在变量定义之前。
这是因为,定义变量,是要从内存中的堆空间或者栈空间分配空间给这个变量的,所以,出于安全及简单考虑,C语言不允许在变量定义之前有内存的操作.
所以,即使你把“GPIO_InitTypeDef GPIO_InitStruct;”换成int a;也是不行的。

C语言的升级版 C++允许在定义之前进行内存操作