【发布时间】:2021-12-28 14:13:13
【问题描述】:
我已经编写了这个基本的 C 程序:
int main(int argc, char const *argv[])
{
int n = rand();
int a[n];
return a[0];
}
在 gcc 中正确编译的内容。但是 MS C/C++ 智能感知在显示错误曲线时显示 expression must have a constant value C/C++(28) [4, 8]。经过一番谷歌搜索后,我发现 MSVC 还没有实现 VLA。但我无法找到抑制此错误的方法。有人请帮帮我!
编辑:此外,令人惊讶的是,第 3 行中隐式声明 rand 并没有警告!!!
编辑:如果可能的话,是否有人还可以提及 C/C++ 的替代扩展。
编辑:我正在使用:
- Microsoft VSCode v1.63.2 代码编辑器
- Microsoft C/C++ Extension Pack v1.1.10 扩展
- MinGW-W64 gcc v8.1.0 编译器
GCC 没有设置编译标志。
C/C++ 扩展配置如下:
- 编译器路径:
C:\Program Files\mingw-w64\mingw64\bin\gcc.exe - cpp标准:gnu++20
- c标准:gnu17
- 智能感知模式:
windows-gcc-x64
【问题讨论】:
-
有人吗?请....!我拼命地试图从 4 小时内找到它。 :|
-
@Kamiccolo Nope.. 我正在使用 C,在 C 中,标准允许 VLA 和 gcc 实现它。这个问题是关于 C++ 的。
-
您几乎没有提供有关您的开发环境的任何信息。建旗?带有版本等的完整工具链?根据这个,MVSC 不支持它:stackoverflow.com/a/5246961/1150918 godbolt 也失败了。
-
@Kamiccolo 编辑了问题。
标签: visual-studio-code intellisense