0


关于Visual Studio 2022常见的报错以及处理方案

前言

本文章主要是介绍c语言在vs2022编译器上运行时常见的报错,主要是想解决各位在编程时遇到的各种问题。

结语

调试

文章目录

C4996:返回值被忽略
C2057:应输入常量表达式
E0169: 应输入声明
E0040: 应输入标识符
E0029:应输入表达式
E0020:未定义的标识符
C6262: 堆栈溢出
C4244:从double转换为int可能会丢失数据
C2065:“identifier”:未声明的标识符
C2143: 语法错误缺少分号
LNK1168: 无法打开进行写入
C2146:语法错误缺少“)”在标识符“x”的前面
C2069: 语法错误:“)”
C3861:找不到的标识符
E0127:应输入一个语句
C2181:没有匹配if的非法else
C2466:不能分配常量大小为0的数组
C2057:应输入常量表达式

**

正文

1.C4996 :

“scanf”返回值被忽略
报错类型:在这里插入图片描述
解决方案:

1.加上**#define _CRT_SECURE_NO_WARNINGS** 头文件
2.预处理方案:在预处理上方加上**#pragma warning(disable:4996)**即可解决

**

2.C2057

报错类型:

// C2057.cpp
int i;
int b[i]; // C2057 - value of i is unknown at compile time
int main() {
const int i = 8;
int b[i]; // OK - value of i is fixed and known to compiler
}

**

解决方案:

// C2057b.c
#define ArraySize1 10
int main() {
const int ArraySize2 = 10;
int h[ArraySize2]; // C2057 - C does not allow variables here
int h[ArraySize1]; // OK - uses preprocessor constant
}

3.E0169

报错类型:
在这里插入图片描述
解决方案:

1.在特殊字符后添加其他内容
2.将单行注释改为多行注释

4.E0040

报错类型:在这里插入图片描述
解决方案:

验证语句中的所有属性是否都放在开头。
验证语句中所有元素名称的拼写是否正确。

另请参阅
已声明的元素名称 (Visual Basic)
特性概述 (Visual Basic)

5.E0029

报错类型:
应输入表达式
解决方案:

在前面输入代码结构中缺少的表达式,在提示错误的地方附近检查一下空格,最好把那附近的空格都用英文输入法再次输入一次。

6.E0020

报错类型:

在这里插入图片描述
解决方案:

根据当前的错误信息,可以试试下面的方法:
右键点击当前工程名,选择Properties-General-Windows SDK Version是不是选中了你已安装的Win10版本(你可以通过运行Visual Studio Installer,选中已安装的VS,修改来查看独立组件下已勾选的Windows sdk版本).
关闭当前VS,以管理员身份运行Visual Studio Installer,选择更多-修复来修复下VS测试下。

7.C6262

报错类型:
在这里插入图片描述
解决方案:
在这里插入图片描述

8.C4244

报错类型:
在这里插入图片描述
解决方案:

整数类型转换为更小的整数类型。 如果 type1 为 int 且 type2 小于 int,则这是警告等级 4。 否则,它是等级 3(将 __int64 类型的值分配给 unsigned int 类型的变量)。 可能发生了数据丢失。
如果收到 C4244,则应将程序更改为使用兼容类型,或向代码添加一些逻辑,以确保可能值的范围将始终与你使用的类型兼容。

9.C2065

报错类型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方案:

1.添加上详细的头文件
2.添加缺少的右引号
在for循环内使用迭代器
4.完善预处理命令。

10.C2143

报错类型:
在这里插入图片描述
解决方案

加上相应的标识符和头文件即可解决。

11.LNK1168

报错类型:

LNK1168    无法打开 xxx.exe 进行写入    xxx```

解决方案:

1.Ctri + Shift + Esc 打开任务管理器,点击详细详细,找到对应的进程手动关掉。
2.方法一需要手动关闭,这挺麻烦的。能不能关闭窗口后,自动把这个程序关闭呢?在菜单中的工具 -> 选项, 打开如下设置对话框,在调试分类下,有一项调试停止时自动关闭控制台,把它选上。

12.C2146

报错类型:
在这里插入图片描述
解决方案:

生成->清理解决方案->重新生成解决方案OK

13.C2069

报错类型:
在这里插入图片描述解决方案:

使用正确的格式转换符

14.C3861

报错类型:
在这里插入图片描述
解决方案:

在自定义的头文件中加上去即可解决该报错。

15.E0127

报错类型:
在这里插入图片描述
解决方案:

因为在16行 至19行间缺少语句,如果没有需要执行的语句,可以输入 ‘;’ 。
或者将第16行 和 19行语句归并为一句:if(cnt > val) {while()… }即可解决该报错。

16.C2181

*报错类型*
在这里插入图片描述
解决方案:

if后面多了分号,导致if实际上为空,下面大括号内实际上是一个代码块,而不是if的结构体,所以把if后面的分号删除即可解决。

17.C2466

报错类型:

``c

error C2466: cannot allocate an array of constant size 0`

解决方案:

错误提示比较明确,n 应该是常量表达式,修改为常量即可解决。

18.C2057

报错类型:
在这里插入图片描述
解决方案:
在这里插入图片描述

应输入常量表达式,上下文要求输入常数表达式,即其值在编译时已知的表达式。
编译器在编译时必须知道类型的大小,以便为该类型的实例分配空间。

结语

创作不易,求三连,谢谢!!
诸君,共勉!!

标签: visual studio c++ ide

本文转载自: https://blog.csdn.net/weixin_72686492/article/details/127199728
版权归原作者 会敲代码的Steve 所有, 如有侵权,请联系我们删除。

“关于Visual Studio 2022常见的报错以及处理方案”的评论:

还没有评论