如何禁用 vscode 中的误报错误?

2023-12-30

我写了这个基本的 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。但我无法找到一种方法来抑制这个错误。有人请帮帮我!

EDIT:此外,令人惊讶的是,它没有对隐式声明发出警告rand在第 3 行!

EDIT:如果可能的话,有人还可以提到 C/C++ 的替代扩展吗?

EDIT: 我在用:

  • 微软 VSCode v1.63.2 代码编辑器
  • Microsoft C/C++ 扩展包 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

这显示为错误,因为它确实是错误。当您使用MSVC编译器只会给你结果MSVC汇编。

现在,这实际上是因为你做错了事情。看来你想初始化一个大小为n这是从随机值获得的。换句话说,您应该执行动态分配 https://www.programiz.com/c-programming/c-dynamic-memory-allocation,即运行时的内存分配。由于您使用的是 C,因此必须使用malloc https://en.cppreference.com/w/c/memory/malloc其功能如图所示:

#include <stdlib.h>
int main(int argc, char const *argv[])
{
    int n = rand();
    int *a = malloc(n * sizeof(int));//Dynamic allocation of an array
    int val = a[0];//Garbage value
    free(a);//Deallocation / Free the memory taken by array 
    return val;
}

如果想更换MSVC with gcc,您可以通过更改设置来更改 VS code 中 C/C++ 的默认编译器:

更改您的设置

C_Cpp.default.compilerPath` : C:\MinGW\bin\g++.exe

编辑:我错误地提到路径应该是 bin 文件夹。相反,它应该是g++.exe本身。我下载了最新的二进制文件并为您确认。

您可以通过转到 VS code 首选项,搜索C_Cpp.default.compilerPath在搜索栏中,这将引导您进入所需的输入框。进入C:\mingw64\bin\gcc.exe并且编译将替换MSVC with gcc/g++

最后,尽量避免 VLA 并使用动态分配,因为这是一种更安全且得到广泛支持的做法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何禁用 vscode 中的误报错误? 的相关文章

随机推荐

  • 可以在 iPhone 上串流 mms、ASX、RTSP 流吗?

    我正在开发一款音乐流应用程序 我可以使用描述的方法流式传输 mp3here https stackoverflow com questions 384900 streaming audio from server to iphone 有谁知
  • Python @patch 不工作

    我正在尝试测试一种方法 该方法在其中创建另一个类的实例 我正在尝试模拟内部类的创建 这对我不起作用 我尝试将问题复制到一个简化的案例中 但仍然不行 这是简化的情况 我有一个名为pymock with a init py在里面 除此之外还有这
  • 如何使用 iframe 为嵌入式 YouTube 放置海报

    我想要一个 YouTube 视频的海报图片 因此 当您单击图像时 您将自动播放 YouTube 视频 但因为我想删除控制器我必须使用 iframe 像这样的东西 而且我有几个视频要应用 所以我想知道包括iframe的代码应该如何 Thank
  • 使用遗传算法进行模式预测

    我是遗传算法的新手 我试图预测规则出现的模式 例如 我有一组定义如下的规则 规则1 规则 2 规则 3 规则 4 规则 5 规则 6 对于给定日期 我只能使用规则 2 规则 3 和规则 6 所以我会将此数据表示为字符串 如下所示 0 1 1
  • 对于 NSTimeInterval 来说,什么常量代表“从不”?

    NSTimeInterval is a double 因此不能采取nil 0 代表应该立即发生的事情 是否有一个常量表示 从不 或者一个天文数字般的巨大值 或者我应该使用 1 正如 s bandara 建议的那样 使用非常大的数字将时间间隔
  • Python:反转具有透明背景的图像(PIL,Gimp,...)

    我在透明背景上有一组白色图标 我想将它们全部反转为透明背景上的黑色 尝试过 PIL ImageChops 但它似乎不适用于透明背景 我也尝试过 Gimp 的 Python 界面 但也没有成功 你知道如何在 Python 中最好地实现反转吗
  • 将远程文件添加到 zip 文件

    有没有办法将文件从另一台带有 php zip 扩展名的服务器添加到 zip 文件中 IE addFile array localfile txt http www domain com remotefile txt that obvious
  • 如何在 Mac OS 中创建用于运行终端命令的停靠图标

    现在我使用终端使用命令打开 jmeter open usr local bin jmeter 我经常需要它 所以我想创建停靠图标来运行此命令 我该怎么做 我尝试右键单击并选择 保留在停靠区 选项 但是 当我关闭应用程序时 它就会消失 我能得
  • 节点应用程序在一定时间后无响应

    我试图弄清楚为什么我的 Nodejs 应用程序变得11 小时 20 分钟后无反应 每次都会发生 无论我是否运行它amazon linux or Red Hat 我的堆栈 Nodejs v 6 9 4 MongoDB 3 2 pm2进程管理器
  • Hausman 对 lme4 中“glmer”的规范测试

    我想制作一个 广义线性模型的固定 随机模型 family 二项式 因为我有一个数据库 其中观察来自总体并且有分组结构 然后我使用该功能glmer来自lme4包 我也读到我可以使用glmmPQL库中的函数MASS 遥远 2006 当我想使用
  • 在 web2py 的本地安装中安装 Python 模块

    我在 Windows 机器上运行 web2py 我正在开发一个应用程序 但它不断出错 因为它说我尝试使用的模块未安装 然而它安装在我的本地 python 安装中 如何安装模块以便 web2py 可以识别它们 web2py 可以识别本地 Py
  • 如何在 Android 中的可跨越字符串之间留出空间?

    Code private void setSpans Editable s ColorInt int backgroundColor BackgroundColorSpan spans s getSpans 0 s length Backg
  • Java 中数据类型的默认值是什么? [复制]

    这个问题在这里已经有答案了 我对 Java 很陌生 总是对数据类型有疑问 那么有哪些defaultJava 中所有数据类型的值 byte 0 short 0 int 0 long 0 float 0 0f double 0 0d char
  • 单击 ListView 项目会更改项目内元素的状态吗?

    我不知道如何解释这个问题 但我会尝试 我有一个包含多个项目的 ListView 每个项目内部都有一个 TextView 和两个 ImageView 我希望当我单击它们时 ImageView 会发生变化 并且当我长时间按下 ListView
  • 如何清除 Android 中的旧徽章计数

    我设置 0 表示其显示徽章计数为 1 如何清除我的旧徽章计数 徽章计数设置方法 public static void setBadge Context mContext int count String launcherClassName
  • 使用 Visual Studio 2010 将 VB6 迁移到 .Net

    有人使用 Visual Studio 2010 将 VB6 项目迁移到 Net 吗 我已经在 VS2005 中测试了迁移 但是生成的 Net 代码非常混乱 因此我们决定不迁移到 Net 那么VS2010的迁移向导比VS2005或VS2008
  • REST API 上的 CakePHP 身份验证

    因此 我正在为我正在开发的 Web 应用程序创建一个 REST API 并且我知道身份验证的基本方法是在每个请求上发送凭据或发送令牌 由于我以前从未使用过令牌 因此我想我可以为每个请求发送凭据 关键是我找不到任何有关如何在控制器中处理此问题
  • 使用 pandas.SparseSeries.from_coo() 函数的非 NDFFrame 对象错误

    我正在尝试将 COO 类型稀疏矩阵 来自 Scipy Sparse 转换为 Pandas 稀疏序列 从文档 http pandas pydata org pandas docs stable sparse html http pandas
  • 在 Keras 中设置 LearningRateScheduler

    我正在 Keras 中设置学习率调度程序 使用历史损失作为 self model optimizer lr 的更新程序 但 self model optimizer lr 上的值不会插入到 SGD 优化器中 并且优化器为使用默认学习率 代码
  • 如何禁用 vscode 中的误报错误?

    我写了这个基本的 C 程序 int main int argc char const argv int n rand int a n return a 0 哪个在 gcc 中正确编译 但是 MS C C 智能感知在显示错误曲线时指出expr