【问题标题】:Trying to write C code in VS, cannot build due to C++ errors [duplicate]尝试在 VS 中编写 C 代码,由于 C++ 错误而无法构建 [重复]
【发布时间】:2020-03-24 14:33:49
【问题描述】:

我正在尝试使用最新的 Visual Studio 2019 社区来运行一些 C 项目,但编译器尝试将其构建为就像它是 c++ 代码一样。 例如,像这样声明一个数组会引发错误:“表达式必须具有常量值”

#include <stdio.h>
int main(){
int input;
scanf("%d", &input);
int array[input];
return 0;
}

我知道 C++ 不允许这样的声明,但我的源文件是 .c 格式的,那为什么它不像其他 IDE 那样构建和运行呢?

【问题讨论】:

    标签: c++ c visual-studio visual-studio-2019


    【解决方案1】:

    这不是 C++ 错误; VLAs (variable-length arrays) aren't supported in Visual Studio. 你必须使用一个恒定的数组大小。

    【讨论】:

      【解决方案2】:

      您可以使用 C++ 项目模板创建 C 语言项目。在生成的项目中,找到具有 .cpp 文件扩展名的文件并将其更改为 .c。然后,在项目(不是解决方案)的项目属性页面上,展开配置属性、C/C++ 并选择高级。将编译为设置更改为编译为 C 代码 (/TC)。

      【讨论】:

      • 没有理由认为 OP 还没有这样做。他们说这是一个 C 项目。
      • 设置 Compile As 设置会强制 IDE 编译为 C。如果 OP 收到 C++ 错误/警告,那么他们没有这样做。
      • 你错了。没有理由认为 VS 正在将他们的项目构建为 C++。 这不是“C++ 错误”。 Visual Studio 不支持 VLA。
      • OP 完全没有提供任何证据证明这一说法,而且很可能是错误的。并且没关系:即使如果代码被编译为 C++,按照您的说明不会解决问题,因为 Visual Studio 仍然不支持 VLA语言。
      • 是的,我错了,我只认为是问题所在。还是谢谢你的回答!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2019-02-19
      • 2022-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      相关资源
      最近更新 更多