如何设置GCC支持C99

如何设置GCC支持C99,第1张

你用的IDE应该是Code::Blocks。我用的是10.05版本,在setting中选择compiler and debugger,然后选择compile flags旁边的Other options, 输入-std=c99。当然,用这种方法需要去掉源程序里的gcc -std=c99……那一行。或者不使用Code::Blocks,直接在命令行中输入gcc -std=c99……那一行,也是可以的。

对,C99的新特性允许在数组长度表达式中使用变量,称为变长数组(VLA,Variable Length Array),VLA只能定义为局部变量而不能是全局变量,与VLA有关的语法规则比较复杂,而且很多编译器不支持这种新特性,所以还是不建议使用的。

说说你这个例子吧,你这个其实不属于变长数组,因为在定义数组 arr[] 前,它的大小 var 已经是固定的了。应该是这样:

int var

int arr[var]

先不要初始化变量 var。

我再给个例子吧,《Linux C编程一站式学习》里面关于归并排序算法的其中一个函数。

void merge(int start, int mid, int end)

{

int n1 = mid - start + 1

int n2 = end - mid

int left[n1], right[n2]

......

}

其中,left与right都是变长数组,因为在定义的时候,数组大小不确定。

gcc默认是不支持c99及以上版本的

如果想支持,需要在编译时加参数:-std=c99

gcc -std=c99 -o xx xx.c

或者在源码里定义宏

#define __STDC_VERSION__ 199901L


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11918190.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存