如何知道 VS2019 编译器支持哪个版本的 C?我查看了项目 C/C++ 和 Linker 命令行,发现没有 -std=Cxx 标志。以下代码编译:

for (int i = index; i < nb_users - 1; i++) {
    users[i] = users[i + 1];
}

所以我猜根据 this 是 C99,但是有没有办法在 VS2019 的某个地方检查它?

最佳答案

VS2019 支持 ANSI C90 以及 C++ 所需的一些后续标准中的一些其他功能。

例如,您可以通过以下代码判断 MSVC 不完全支持 C99,这将无法编译:

int foo(int n, char *s)
{
    char s2[n];
    strcpy(s2, s);
    return !strcmp(s, s2);
}

MSVC 不支持此特定功能(可变长度数组),而您提到的功能(for 循环初始声明)是。

关于c - VS2019 编译器支持哪个版本的 C?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57965155/

10-11 23:02
查看更多