vs2022出现错误的警告,谁能解决一下这个编译器问题(代码无问题)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2022出现错误的警告,谁能解决一下这个编译器问题(代码无问题)?相关的知识,希望对你有一定的参考价值。

vs2022每次把代码写长就会出现莫名其妙报错,只有出现这个情况,无论这行是什么,无论怎么修改都会出现警告

参考技术A 这不可能是编译器问题,把错误首先归纳为其他人问题,是找不到问题的一个重要原因
几个基本问题先回答一下:
a) getNameAll函数在出现错误的前面还是后面定义的?

b) 除了这个显示错误外,编译时是否报错?给出所有错误信息追问

确实是Visual Studio 2022问题

    为了图方便,我就直接把getNameAll函数写在类里,图2中getNameAll本身就是声明定义,但vs却没有找到定义。

    这个只是单纯显示错误,编译时不报错,可以正常调用getNameAll函数。

    出现这个情况时哪怕把这个头文件全部改成换行,也会在固定位置显示未找到getNameAll函数的定义(类似图一中没有getNameAll函数相关代码和调用)

追答

你这样说就不知道怎么评论了......如果真是VS问题,估计你也没解啊

VS2012的错误警告问题

int num;
cin >> num;
int a[num];

提示为:表达式必须含有常量值;
但是我用DEV写是可以通过的,请问这是怎么回事。

DEV-C++使用的编译器是GCC,它允许使用变量作为数组的长度定义数组。
VC的编译器不是GCC,它不允许你这样做。

方法1:使用动态内存分配,new和delete操作符
int num;
cin >> num;
int* a = new int[num];
哇啦哇啦
delete[] a;

方法2:使用vector容器
int num;
cin >> num;
vector<int> a(num);

注意:在为数组分配内存失败的时候,以上两种方法均会抛出异常bad_alloc

补充:关于你下面的追问,是这样的,一个变量并不是说不知道值的时候才是变量,它是变量那就一直是变量,不会因为你给它值它就变成常量了。常量的话要求在程序运行之前就能确定值,而且是直接确定不是间接确定(比如你上面那个,就算改成
int num;
num = 5;
int a[num];
也是不行的,num还是变量)
参考技术A 能通过吗????
数组定义时必须使用常量表示数组长度,不能使用变量。追问

输入后不就不是变量了?

追答

能输入必然是变量啊,不能修改的才是常量,变量是可以修改的。

参考技术B vc 对C++标准支持是很不好
dev 是g++ 对c++标准支持好追问

VC?VS呢

追答

vs 包好 vc ..vb ...c#

以上是关于vs2022出现错误的警告,谁能解决一下这个编译器问题(代码无问题)?的主要内容,如果未能解决你的问题,请参考以下文章

vs2005 SP1发布网站时发布失败,没有错误信息,没有警告信息。怎么解决啊?

VS2010出现FileTracker : error FTK1011编译错误的解决办法

谁能解决这个 ListView onItemClickListener 错误?在 searchView 中也出现错误

更新到 VS 2022 后无法构建

为啥在 C# 10 中我会在初始化属性上收到编译器警告/错误 CS8618

VS 2012 模板错误