error C2143: 语法错误 : 缺少“)”(在“常量”的前面)

news2024/10/7 20:25:02

【背景】最近做一个项目,需要使用到凌华的运动控制卡和IO卡,在测试工程中,使用的类和引用的库文件都一切正常。

测试完成后,本着可重复移植的考虑,将整个文件夹添加到现有工程中,却出现了非常奇怪的编译错误。

 【分析】这些文件在测试工程中是没有问题的,因此这个错误肯定不是语法上的错误。

点击错误行,指向了凌华厂家提供的头文件!

测试工程没有问题,加入到项目工程却出现了问题,显然与项目工程的文件有关。

由于是编译错误,

首先怀疑是重复包含的问题,在每个文件头加入了#pragma once,问题仍然存在。

其次怀疑是文件的包含路径问题,不过路径不对报错不应该是这个报错。将#include "Stdafx.h"放到最前,并且确保路径正确。问题依旧。

由于错误指向是厂家提供的头文件,一直没有怀疑头文件的问题。反反复复折腾了很久。

网上查找该错误信息,排查了多种干扰可能后,发现了一个有价值的。

error C2143: 语法错误 : 缺少“)”(在“常量”的前面)_缺少在常量的前面_清水迎朝阳的博客-CSDN博客

 

作者的场景与我的十分相像!

【解决】正式把怀疑对象锁定到厂家头文件上!

首先把错误指向的函数及其引用屏蔽,重新编译项目工程。果然,编译通过了!

可是,被屏蔽的函数是需要使用的,不能屏蔽掉。

再一个个修改函数的宏和参数名称,最终确定,居然是函数的一个参数名称出现了问题!

将参数名称按照如下修改后,问题就解决了!

 

再去工程中查找原来的函数参数名称,果然发现了一个与之同名的宏定义!

至此,原因也分析清楚了。

【总结】

这是一个非常隐蔽的问题,也是一个简单的编译问题,却耗费了大量的时间进行分析。除了希望VS能提示的更加清晰以外,我想还有以下收获:

1、永远可以相信编译器给出的提示,循着提示去找问题就对了。

2、定义宏的时候一定要用大写,与定义函数变量要有所区分。

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM系列-第9章-StringTable(字符串常量池)

StringTable(字符串常量池) String的基本特性 String:字符串,使用一对 “” 引起来表示 String s1 "atguigu" ; // 字面量的定义方式String s2 new String("hello"); // new 对象的方式String被…

基于html+css的图展示73

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

【fly-iot飞凡物联】():开源项目Apache IoTDB,开源项目学习,原来还有这样的项目,关于IOT的几个开源项目汇总下

目录 前言1,关于:开源项目Apache IoTDB2,还有个admin后台3,thinglinks项目4,thingsboard-ui-vue项目5,apache pulsar项目6,ActorCloud项目 前言 本文的原文连接是: https://blog.csdn.net/freew…

ASP.NET MVC-WebAPI请求

一、无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetUser() : 也可以用$.ajax({type:"get"}) 方式,正确的获得了返回数据: 二、…

Grafana功能菜单介绍(04)

Grafana的功能菜单设计为侧边栏(sidebar)形式,可以折叠隐藏,便于我们更加专注数据的可视化。现将菜单栏各项功能进行编号讲解,如下图所示。 ① Grafana的logo,即当前页为Grafana的Home page,在任何页面点击Grafana的logo,都会跳到Home Page。 ② 新建按钮,用于创建Da…

Camtasia Studio2023新功能及下载安装使用教程

Camtasia Studio2023新版本包含了屏幕录像、视频剪辑和编辑、视频录音配音、视频菜单制作、视频剧场和视频播放等功能。它可以在任何颜色模式下记录屏幕动作,包括影像、 音效、鼠标移动轨迹,解说声音等等;它支持视频播放和编辑压缩&#xff0…

Mars3d实现单击按钮高亮矢量对象

调用高亮的关键代码: let graphictruck new mars3d.graphic.ModelEntity({ position: [116.327881, 31.018378, 5000], style: { url: //data.mars3d.cn/gltf/mars/qiche.gltf, heading: 90, scale: 0.9, …

应用软件系统架构设计的“七种武器”

对于软件架构这一概念,有太多的版本,目前在业界由大师级人物或组织提出的对这一概念的阐述就超过十种以上,我个人比较赞同RUP(Rational Unified Process)中对软件架构的定义,即软件架构包含了关于以下问题的重要决策: …

剑指offer(C++)-JZ48:最长不含重复字符的子字符串(算法-动态规划)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 数据范围…

c++ 11标准模板(STL) std::set(四)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class set;(1)namespace pmr { template <class Key, class Compare std::less<Key>> using se…

让 ChatGPT 来担任这个召之即来挥之即去的私人健身教练

健身教练 和ChatGPT聊天可以运用在各种正式、非正式&#xff0c;工作、休闲场合&#xff0c;让我们再来看一个场景&#xff0c;也是年轻人群体中非常热门的话题&#xff1a;健身。健身已经是年轻人最流行的活动&#xff0c;既可以是私密的个人健身&#xff0c;也可以是呼朋唤友…

JAVA集合,复杂度,泛型

泛型: 1.存储数据的时候 可以帮我们进行自动的类型检查 2.获取元素的时候&#xff0c;可以帮我们进行类型转换 获取数据时&#xff0c;不需要强转类型转换。 类型形参一般使用一个大写字母表示&#xff0c;常用的名称有&#xff1a; E 表示 Element K 表示 Key V 表示 …

多目标跟踪:视觉联合检测和跟踪

国内头部以自动驾驶全站技术为主线的交流学习社区&#xff08;感知、归控等&#xff09;&#xff0c;包含大量前沿论文解读、工程实践(源代码)、视频课程&#xff0c;热招岗位。欢迎加入&#xff01; 点击上方“迈微AI研习社”&#xff0c;选择“星标★”公众号 重磅干货&#…

Python每日一练(20230516) 打家劫舍 I\II\III\IV HouseRobber

目录 1. 打家劫舍 I House Robber i 2. 打家劫舍 II House Robber ii 3. 打家劫舍 III House Robber iii 4. 打家劫舍 IV House Robber iv &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏…

除了OA以外,只用点击按钮就能实现协同办公,靠一个工具就能实现

OA不同时期&#xff0c;不同功能 OA是办公自动化系统&#xff0c;与互联网技术的发展有着密切的联系。 很多办公场景都离不开OA协同系统。OA是办公系统&#xff0c;借助与互联网的交互性&#xff0c;开创出的一种新型的办公方式。 所以&#xff0c;说到OA软件&#xff0c;在不…

Linux 网络基础(1)基础知识、IP地址、端口、协议、网络字节序

基础知识 网络发展背景&#xff1a; 网络的划分&#xff1a;局域网&#xff08;覆盖范围在1000m以内&#xff09;、城域网&#xff08;覆盖范围在20km以内&#xff09;、广域网&#xff08;更大范围&#xff09; 组网方式&#xff1a;以太网、令牌环网.... 日常名词&#xff1a…

ChatGPT「最强竞争对手」Claude有了史诗级更新~~~百页数据一分钟读完还能做出总结

号称ChatGPT「最强竞争对手」的Claude&#xff0c;迎来史诗级更新—— 模型记忆力原地起飞&#xff0c;现在1分钟看完一本数万字的小说&#xff0c;已经是一件很理所当然的事情了。 消息一出&#xff0c;评论区直接炸了&#xff0c;网友们蜂拥而至&#xff0c;「wocao连连」&am…

报表解决方案Telerik Reporting - 轻松完成嵌入式报表开发

假设您是一名开发人员&#xff0c;思考一下您的用户将从Web报表设计器中得到什么吗&#xff1f;他们能突出异常数据吗?他们能够从头开始创建一个报告吗?让我们站在商业用户的角度&#xff0c;看看这到底是怎么回事。 Telerik Reporting Web Designer是一个多功能且用户友好的…

Redis系列--redis管道

一、前言 1、reids客户端向服务端发送命令分四步&#xff08;发送命令-命令排队-命令执行-返回结果&#xff09;&#xff0c;并监听socket返回&#xff0c;通常以阻塞模式等待服务端响应。 2、服务端处理命令&#xff0c;并将结果返回给客户端 以上两步称为&#xff1a;Roun…

榜店商城独立版禾匠队列服务测试失败问题解决方法-开启禾匠队列教程

发现很多用户在安装完成后或者在使用独立版本的过程中可能突然会遇到测试不通过,队列测试失败的情况,安装完成后输入站点域名登录到商城后台,先清理缓存然后进入“设置”-“队列服务”,按要求启动服务并测试服务是否正常运行,如果运行失败的话,如下图所示 这里狮子喵就给…