今天在使用memset()函数时出现了报错
memset(Lcd_Buf,0,sizeof(Lcd_Buf));

开先以为是memset()出错了,捣鼓一阵才发现是sizeof()出错了
并不是sizeof这个关键词有什么问题,原因在我下面这行代码
extern u8 Lcd_Buf[];
这里数组Lcd_Buf是一个全局变量,问题就在这,我的Lcd_Buf[]是在其他c文件定义的,而在main.c声明时并没有说明数组大小,这样sizeof()就没法工作,只需要说明数组大小就ok了
本文讲述了在C语言编程过程中遇到的一个问题,即当全局变量在其他C文件中定义,而在引用处未指定大小时,sizeof()函数无法正确计算数组大小。通过此案例,提醒开发者注意在使用sizeof()时确保全局变量已完全定义。
1万+





