建材网站建设功能方案,内蒙古网站建设电话,网站关键字怎么做,wordpress 官方网站本次来分享在用VS系列编译(VS2010/VS2019)写C语言或C代码时会遇到的一些警告和错误#xff0c;提供博主的一些解决方法#xff0c;若有更好的解决方法#xff0c;大家也可以在评论区发表自己的意见噢#xff0c;话不多说#xff0c;开始上菜#xff1a; 此博主在CSDN发布… 本次来分享在用VS系列编译(VS2010/VS2019)写C语言或C代码时会遇到的一些警告和错误提供博主的一些解决方法若有更好的解决方法大家也可以在评论区发表自己的意见噢话不多说开始上菜 此博主在CSDN发布的文章目录我的CSDN目录作为博主在CSDN上发布的文章类型导读 目录 1.警告1.1.warning C4305从“double”到“float”截断1.2.warning C4700使用了未初始化的局部变量1.3.warning C4996的警告1.4.warning C4068未知的杂注1.5.warning C4091没有声明变量时忽略“int”的左侧1.5.1.示例1没有声明变量时忽略“int”的左侧 1.6.warning C4101未引用的局部变量1.6.1.示例1未引用的局部变量 1.7.warning C4244从“float”转换到“int”可能丢失数据1.7.1.示例1从“float”转换到“int”可能丢失数据 1.8.warning C4553: “”: 运算符不起任何作用是否是有意使用“”的? 2.错误2.1.error LNK20192.2.error LNK11042.3.error C1903无法从以前的错误中恢复正在停止编译2.4.error C2010“:”: 宏形参表中的意外2.5.errorC2039不是结构体的成员2.6.error C2040“char [10]”与“int”的间接寻址级别不同2.7.error C2059语法错误2.8.error C2062意外的类型“int”2.9.error C2065未声明的标识符2.10.error C2109: 下标要求数组或指针类型2.11.error C2117数组界限溢出2.12.error C2143语法错误 : 缺少“;”(在“}”的前面)2.13.error C2146语法错误2.14.error C2181: 没有匹配 if 的非法 else2.15.error C2228左边必须有类/结构/联合2.15.1.示例1“.stu_id”的左边必须有类/结构/联合 2.16.error C2440无法从“char \[2][10]”转换为“char *”2.16.1.示例1: “初始化”: 无法从“char [2][10]”转换为“char *” 2.17.error C2446没有从“int”到“char *”的转换2.18.error C2561函数必须返回值2.19.error C2562 void函数返回值2.20.error C2664不能将参数 1 从“char [2][10]”转换为“const char *”2.21.error C2665 重载中没有一个可以转换所有参数类型2.21.1.示例1“strchr”: 2 个重载中没有一个可以转换所有参数类型 2.22.error C2668: 对重载函数的调用不明确2.23.error C3861找不到标识符2.24.error C4716函数返回值 1.警告
1.1.warning C4305从“double”到“float”截断 float b234.45; warning C4305: “初始化”: 从“double”到“float”截断
参考解决办法 将float b234.45;改成float b234.45f;数据类型截断一般是长类型的数据给了短类型所以数据会被截断显示不完全。
1.2.warning C4700使用了未初始化的局部变量 warning C4700: 使用了未初始化的局部变量“b2”
参考解决办法 给b2初始化赋值
1.3.warning C4996的警告 warning C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details
参考解决办法(来自4996的警告都可以采用该方法) 方法1开头加上#pragma warning(disable:4996) 方法2开头加上#define _CRT_SECURE_NO_WARNINGS 若有多个文件请在解决方案的属性中的预处理器中添加该宏如图
1.4.warning C4068未知的杂注 warning C4068: 未知的杂注
参考解决办法 一般是写错某个关键字或者无法解析该关键字找到改正就好
1.5.warning C4091没有声明变量时忽略“int”的左侧
1.5.1.示例1没有声明变量时忽略“int”的左侧 warning C4091: “”: 没有声明变量时忽略“int”的左侧
参考解决办法 一般是没有声明变量时没有写变量名
1.6.warning C4101未引用的局部变量
1.6.1.示例1未引用的局部变量 warning C4101: “f”: 未引用的局部变量
参考解决办法 没有引用局部变量删除局部变量就好
1.7.warning C4244从“float”转换到“int”可能丢失数据
1.7.1.示例1从“float”转换到“int”可能丢失数据 warning C4244: “”: 从“float”转换到“int”可能丢失数据
参考解决办法 两个不同类型的转换要么强制转换int要么声明变量时修改其声明类型。
1.8.warning C4553: “”: 运算符不起任何作用是否是有意使用“”的?
参考解决方法 首先需要理解和的作用是关系运算符判断的左边和右边是否相同是赋值运算符所以需要找到该行判断是否把运算符用错。
2.错误
2.1.error LNK2019 error LNK2019: 无法解析的外部符号 “void __cdecl Show_s(void)” (?Show_sYAXXZ)该符号在函数 _main 中被引用
参考解决方法 是因为该函数只有声明没有定义请重写该函数。
2.2.error LNK1104 error LNK1104: 无法打开文件“C:\Users\Administrator\Desktop\C程序草稿\计算天数\Debug\计算天数.exe”
参考解决办法 可能是上次打开的.exe文件没有关闭可以启动任务管理器找到计算天数.exe进程将其关闭
2.3.error C1903无法从以前的错误中恢复正在停止编译 error C1903: 无法从以前的错误中恢复正在停止编译
参考解决办法 修改上次出现的错误
2.4.error C2010“:”: 宏形参表中的意外 error C2010: “:”: 宏形参表中的意外
参考解决办法 宏中出现错误写法检查一下
2.5.errorC2039不是结构体的成员 errorC2039: “college”: 不是“student”的成员
参考解决办法 在结构体中找不到该成员更改为正确的结构体成员
2.6.error C2040“char [10]”与“int”的间接寻址级别不同
1、error C2040: “”:“char [10]”与“int”的间接寻址级别不同 2、error C2040: “!”:“FILE *”与“int”的间接寻址级别不同
参考解决办法 式子两边的最后结果类型不一样其对应保存数据的类型也不一样寻址方式不同需要使两边的结果类型一致
2.7.error C2059语法错误
1、error C2059: 语法错误:“}” 2、error C2059: 语法错误:“;” 3、error C2059: 语法错误:“)”
参考解决办法 1、一般是在 } 的前面缺少分号之类的。 2、一般是在表达式的前面缺少分号 3、写法错误“)”此处缺少东西不符合函数规定写法检查之后补充正确写法就行
2.8.error C2062意外的类型“int” error C2062: 意外的类型“int”
参考解决办法 一般是在int的前面缺少分号之类的。
2.9.error C2065未声明的标识符 错误error C2065: “p”: 未声明的标识符
参考解决办法 按系统提示声明未声明的标识符p
2.10.error C2109: 下标要求数组或指针类型 error C2109: 下标要求数组或指针类型
参考参考解决办法 查看数组名是否正确。
2.11.error C2117数组界限溢出 error C2117: “s1”: 数组界限溢出
参考解决办法 表示给数组赋值时超出了数组的长度减少数组元素或增加数组的长度
2.12.error C2143语法错误 : 缺少“;”(在“}”的前面) error C2143: 语法错误 : 缺少“;”(在“}”的前面)
参考解决办法 多了}或少了}
2.13.error C2146语法错误 error C2146: 语法错误: 缺少“;”(在标识符“puts”的前面)
参考解决办法 一般是写法错误要么缺少括号要么缺少分号要么没有正确注释等。
2.14.error C2181: 没有匹配 if 的非法 else
参考解决办法 if和else不匹配请检查是否少了if或者else。
2.15.error C2228左边必须有类/结构/联合
2.15.1.示例1“.stu_id”的左边必须有类/结构/联合 error C2228: “.stu_id”的左边必须有类/结构/联合
参考解决办法: 查看.stu_id左边的结构体名是否正确或者该结构体是否定义。
2.16.error C2440无法从“char [2][10]”转换为“char *”
2.16.1.示例1: “初始化”: 无法从“char [2][10]”转换为“char *” error C2440: “初始化”: 无法从“char [2][10]”转换为“char *” error C2440: “”: 无法从“bool”转换为“FILE *”
参考解决办法 表达式两边的类型不一致检查是否正确转换请查看类型转换
2.17.error C2446没有从“int”到“char *”的转换 error C2446: “”: 没有从“int”到“char *”的转换 “!”: 没有从“int”到“FILE *”的转换
参考解决办法 使用的式子两边的最后结果类型不一样需要定义一样的类型
2.18.error C2561函数必须返回值 error C2561: “m_read”: 函数必须返回值
参考解决办法 return的时候带上返回值例return 1;
2.19.error C2562 void函数返回值 error C2562: “SS5”:“void”函数返回值
参考解决办法 去掉void函数的返回值或其返回无值
2.20.error C2664不能将参数 1 从“char [2][10]”转换为“const char *”
1、error C2664: “puts”: 不能将参数 1 从“char [2][10]”转换为“const char *” 2、error C2440: “”: 无法从“bool”转换为“FILE *”
参考参考解决办法 1、检查类型转换是否一致是否传错参数 2、查看等式两边的类型是否一样
2.21.error C2665 重载中没有一个可以转换所有参数类型
2.21.1.示例1“strchr”: 2 个重载中没有一个可以转换所有参数类型 error C2665: “strchr”: 2 个重载中没有一个可以转换所有参数类型
参考解决办法 函数参数的类型传得不对检查传进去的参数类型和函数定义的参数类型是否一致。
2.22.error C2668: 对重载函数的调用不明确 error C2668: “sqrt”: 对重载函数的调用不明确 可能是“long double sqrt(long double)” 或 “float sqrt(float)” 或 “double sqrt(double)”
参考解决办法 查看sqrt的原型是否有你传入的参数类型一样的函数定义sqrt没有int类型的参数可以强制转换成float。
2.23.error C3861找不到标识符
1、error C3861: “getcahr”: 找不到标识符 2、error C3861: “strlen”: 找不到标识符 3、error C3861: “m_2”: 找不到标识符
参考解决办法 1、一般表示写错系统封装好的函数名字改正就好 2、函数名写对但依然找不到那就是函数所需要的头文件没有包含进去 3、自定义的函数找不到查看是否声明和定义函数注意在main函数里声明的函数只能main函数调用
2.24.error C4716函数返回值 error C4716: “m_5”: 必须返回一个值
参考解决办法 给函数带上返回值。 以上就是本次的分享了希望对大家有所帮助欢迎关注博主一起学习更多的新知识