1、使用背景
? ? ?由于想把不同地方的三个变量数据存放在一个结构体中,并且调用W25QXX_Write((u8*)p,FLASH_SIZE-100,SIZE); //从倒数第100个地址处开始,写入SIZE长度的数据。调用flash写数据函数,其参数为指针地址,于是需要定义一个结构体和指向结构体的指针,这样调用flash写函数,能把结构体内容数据写入到flash中。
2、在main.h中声明全局结构体变量和结构体指针p,如图
然后需要在main.c的变量定义区定义:
这里注意,要在main函数之前定义。然后在main函数中使用结构体p赋值:
如果将p=&CeLiang_data;放在main函数之前,则会一直提示报错:
所以,总结起来,普通变量的定义要在main函数之前,写在main函数中提示报错,指针类型的定义要在main函数之前,但是初始化不能放在main函数之前,要放在main函数中。