1、对于C99中新引入的变长数组VLA,现在在哪些环境下是可以使用的?。普及了没有?。
环境?你想问的是哪些编译器支持C99吧?主流的gcc、clang等都支持C99,而VC++系列都不支持
“普及”就不好说了,没有什么评判标准。
2、好像是C99标准中没有硬性要求变量的定义一定要在代码块的开头?但是我在学校有的机子上又不允许这样做。大部分编译环境的处理方法是什么?
对,不但是“没有硬性要求”,而且是不建议这么做。过去之所以做出如此规定,只是为了编译时的速度。
如果你的编译不允许这么做,那答案很显然:你的编译器不符合现在的C标准。
3、……在dev c++中是可以成功编译的,但在vc中好像不行。这里用到的算是变长数组吗?
DevCpp只是个IDE,不是编译器
所有版本的VC都不支持现在的C语言标准
当然算变长数组
题外话:
gcc 这个编译器主要是为GNU/linux服务的,带有很多自身的扩展,如果C标准和扩展行为有冲突,则其默认使用扩展语法。
所以,如果要想使用C99语法,编译参数需要加上-std=c99