当前位置: 首页 > news >正文

C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)

  本次来分享在用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 LNK2019
    • 2.2.error LNK1104
    • 2.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 的非法 else
    • 2.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 b=234.45;
  warning C4305: “初始化”: 从“double”到“float”截断

参考解决办法:
    将float b=234.45;改成float b=234.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_s@@YAXXZ),该符号在函数 _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”: 必须返回一个值

参考解决办法
  给函数带上返回值。

  以上就是本次的分享了,希望对大家有所帮助,欢迎关注博主一起学习更多的新知识!

相关文章:

C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)

本次来分享在用VS系列编译(VS2010/VS2019)写C语言或C代码时会遇到的一些警告和错误,提供博主的一些解决方法,若有更好的解决方法,大家也可以在评论区发表自己的意见噢,话不多说,开始上菜: 此博主在CSDN发布…...

从零实现一个数据库(DataBase) Go语言实现版 0.介绍

英文源地址 数据库实现步骤细分 1.持久化(Persistence) 我们为什么需要数据库?为什么不是直接把数据dump进文件中. 第一个话题就是持久化. 我们将讨论如果写入文件的过程中程序崩溃了, 或者电源断电了, 文件的状态会是什么样的呢? 文件是否只是丢失了最后一次写操作?或者…...

操作系统-X18 linux日志审计

Linux日志审计 在unix/类unix(Linux)系统中,日志是内核(内存)的一部分。 用于记录系统、程序运行中发生的各种事件 通过阅读日志,有助于诊断和解决系统故障 日志文件的分类 ①内核及系统日志 由系统sysl…...

【Vue工程】011-Axios

【Vue工程】011-Axios 文章目录 【Vue工程】011-Axios一、概述1、简介2、官网3、訾博其他相关博客【axios】001-axios概述、特点、文档说明【axios】002-axios发起请求axios封装 二、基本使用1、安装2、创建一个 token 状态3、axios 封装4、使用示例设置 baseURL请求调用拦截器…...

Cy7 NHS ester水溶性七甲川花菁染料标记活性脂477908-53-5

Sulfo-CY7 NHS ester是一种荧光标记试剂,可用于生物分子的荧光标记。它是一种水溶性的N-羟基琥珀酰亚胺酯化合物,具有强烈的荧光信号和高度稳定性。Sulfo-CY7 NHS ester的化学结构为C43H48N3NaO16S2,分子量约为968.98 g/mol。Sulfo-CY7 NHS e…...

利用CX-ONE搭建omron PLC仿真环境

目录 1 安装参考 2 CX-Simulator 2.1 打开软件 2.2 选择PLC配置文件存放位置 2.3 选择PLC类型 2.4 PLC Unit全部选择 2.5 设置FINS通讯 2.6 设置串口通讯 2.7 建立连接 3 CX-Programmer 3.1 新建工程 3.2 设置PLC型号 3.3 设置网络类型 3.4 设置串口通讯 3.5 设…...

webpack Plugin Loader

本文作者为 360 奇舞团前端开发工程师 webpack是Javascript工具链的关键部分。webpack是个用于现代JavaScript应用程序的静态模块打包工具。它不仅可以支持ESM和CommonJS模块化编程,而且还可以支持或扩展支持许多不同的静态资源,例如:Files,I…...

关闭eslint - vue篇

文章目录 一、问题描述二、问题解决1、首先是比较旧的vue项目2、创建项目的时候,不要选eslint3、如果你使用的编辑软件是webstorm4、创建的项目没有webpack.base.conf.js文件,但是有 .eslintrc.js5、比较新的vue项目,目录没有(直接…...

XXL-SSO简要说明

一、介绍 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有”轻量级、分布式、跨域、CookieToken均支持、WebAPP均支持”等特性。现已开放源代码,开箱即用。 官方文档 二、集成 2.1、源码下载 下载地址 2.2、代码结构…...

HC-05蓝牙模块的使用

我最近刚刚开始学习嵌入式,在第一次使用蓝牙模块HC-05的时候遇到了很多问题, 甚至连接线都不会,因此下面我会十分详细地介绍我一步一步探索的步骤,直到完成使用手机APP和51单片机收发数据。 调试步骤 首先,我们需要明…...

初始python

初始python 缘由 ​ 对于python,相比大家并不陌生,Python是一种高级的、解释性编程语言,它具有简洁的语法和强大的内置函数,适用于广泛的应用领域,例如运维,Web开发,数据科学,人工智能等。Pyt…...

C++入门预备语法

C入门预备语法 C关键字命名空间C输入&输出初步缺省参数函数重载引用内联函数auto和范围for(C11)指针空值nullptr C关键字 命名空间 命名空间是一种将变量名、函数名、类名和库名称等封装到一个命名空间域中,与其他域的同名量相隔离&…...

python发送email

通过第三方SMTP发送纯文本邮件 #!/usr/bin/python -- coding: UTF-8 -- import smtplib from email.mime.text import MIMEText from email.header import Header 第三方 SMTP 服务 mail_host“smtp.XXX.com” #设置服务器 mail_user“XXXX” #用户名 mail_pass“XXXXXX” …...

软件测试面试题自动化面经分享——这才是高薪的秘诀!

Hello,你们的好朋友来了!今天猜猜我给大家带来点啥干货呢?最近很多小伙伴出去面试的时候经常会被问到跟自动化测试相关的面试题。所以,今天特意给大家整理了一些经常被公司问到的自动化测试相关的面试题。停,咱先收藏起…...

Ceph入门到精通-Centos8安装prometheus

普罗米修斯是一个开源的监控、查询和警报工具。最初由Soundcloud于2012年构建,功能丰富的工具已被多家公司采用,用于监控其IT基础架构并确保所有系统平稳运行。Prometheus 允许您通过 HTTP 协议查询和提取时间序列指标,例如 CPU 和内存利用率,并在实时图表上可视化它们。您…...

把树莓派改造成无线网卡(3)-----共享无线网络,无线网络转换成有线网络,让有线网络设备连上无线网络

本文目录 1、准备工作2、安装DNS和配置管理软件3、设置网络路由功能3.1、树莓派的有线网络接口IP配置3.2、启用路由和IP伪装3.3、为有线网络配置DHCP和DNS服务 4、运行5、进阶--将二个以太网口加入到同一个网桥 现在的无线路由器非常便宜,所以实际上除了有特殊的要求…...

NumPy

目录 1、NumPy简介 2、利用元组、列表创建多维数组 3、数组索引 4、数组裁切 4.1、一维数组操作 4.2、二维数组操作 5、数据类型 6、副本/视图 7、数组形状 8、数组重塑 9、多维数组的迭代 10、数组连接 10.1、使用concatenate() 函数进行数组连接 10.2、使用堆栈…...

C++17完整导引-模板特性之类模板参数推导

模板特性之类模板参数推导 使用类模板参数推导默认以拷贝方式推导推导lambda的类型没有类模板部分参数推导使用类模板参数推导代替快捷函数 推导指引使用推导指引强制类型退化非模板推导指引推导指引VS构造函数显式推导指引聚合体的推导指引标准推导指引pair和tuple的推导指引从…...

CSS3小可爱亲吻表白特效,给你的五一假期增添点小乐趣

马上五一假期了,小伙伴们是不是都准备出去旅游呢,或者回老家陪陪父母。今天我用CSS3制作一个小可爱亲吻表白的特效,来给你即将到来的五一假期增添点小小的乐趣。 目录 实现思路 左边小可爱的实现 右边小可爱的实现 左右摇摆动效的实现 右…...

Samba CentOS 7 安装

安装步骤 Samba是在Linux与Windows系统间共享文件和打印机的标准协议。要在CentOS上安装Samba,可以按以下步骤操作: 安装Samba相关包: yum install samba samba-client samba-common创建Samba配置文件/etc/samba/smb.conf: vim /etc/samba/smb.conf添加如下配置: [global]…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...