这一期,我们来看一个在keil中编译时候遇到定义数组元素个数为0时候遇到的一个错误。
错误:
先看错误:编译提示错误“error: #94-D: the size of an array must be greater than zero” ,意思是这个数组内元素个数不能定义为0个;
同时keil也会提示如下错误:“error: #3093: anonymous structs are only supported in --gnu mode, or when enabled with #pragma anon_unions” , 意思是该类型只支持在gnu模式下;
错误原因:
所以到了这里我们就明白了,因为我在代码中定义了
char buf[0];
也就是系统提示错误的地方,因为keil中设置的是amrc99,而在armc99中是不允许定义个数为0的数组,所以编译器才会提示出错;也就是keil编译器未选择–c99 --gnu造成的;
解决方法:
知道了原因后,我们来看解决方法:只需要在keil的options的C/C++中Misc Controls加上–c99 --gnu即可!!!
具体可以看图:
如果有其他小伙伴也遇到了这种错误,可以尝试按照该方法试一试,而为什么要定义数组个数为0来使用,大家后期自己可以去查一下,好了,今天的分享就到这里了。
本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~