如何在MS Visual C ++中启用VLA,C99中定义的可变长度数组,或者根本无法使用?
是的,我知道C ++标准基于C89,并且VLA在C89标准中不可用,因此在C ++中不可用,但是MSVC ++也应该是C编译器,可以使用/ TC编译器参数(Compile as C Code (/TC)
)。但是这样做似乎并不能启用VLA,并且在编译时与C ++(Compile as C++ Code (/TP)
)一样,编译过程将失败,并出现相同的错误。也许MSVC ++ C编译器仅符合C89,或者我缺少某些内容(某些特殊构造或编译指示/定义)?
代码示例:
#include <stdlib.h>int main(int argc, char **argv){ char pc[argc+5]; /* do something useful with pc */ return EXIT_SUCCESS;}
编译错误:
错误C2057:预期常量表达式
错误C2466:无法分配大小恒定为0的数组
错误C2133:“ pc”:未知大小
慕后森