在移植代码(例如LVGL库,支付宝库等等)过程中经常会出现大量的编译报错提示,
类似--》Error: #29: expected an expression for(int i=0; i<10; i++)
如果要一个个的修改把 int i=0; 的定义挪出for循环外面,也是可以的,但是大量的这种定义需要改很多处,也很费时间,还容易出错。
而这个原因是:在C语言规范C99之前是不允许在for循环中定义变量的,到C99或以上版本就可以了
那我们如何修改编译器默认使用的C语言标准呢?
比如常见的ASR平台,我们可以在对应的.mak文件中加上 PACKAGE_CFLAGS = --c99
注意不同的平台修改方法不一样。比如有些平台是这样加的 gcc -std=c99