一、问题描述
在单片机开发中,使用keil进行开发,编译报错如下:
..\xxx.c(31): error: #70: incomplete type is not allowed
memset(stmflash_buf, 0, sizeof(stmflash_buf)/sizeof(*(stmflash_buf)));
二、问题分析
stmflash_buf是一个全局变量,在其它文件中定义,外部声明如下,没有说明数据的大小,sizeof无法知道数据的大小。
extern uint32_t stmflash_buf[];
三、解决方案
只需在外部声明中说明数据的大小即可。
extern uint32_t stmflash_buf[256];