一行中文注释引发的头疼

本文介绍了由于在C++头文件中使用中文注释导致的预编译错误,通过使用命令行工具cl进行预处理分析,发现编译器误处理了中文注释,将其实体代码输出。解决方法是改用英文注释和块注释。通过修改后的代码,编译恢复正常。此案例强调了遵循编程规范的重要性。
摘要由CSDN通过智能技术生成

今天碰到了一个比较有意思的问题:
先说结论:
以后注释建议建议遵循如下原则:
1)尽量使用英文
2)尽量使用块注释(/* note */),少用行注释(// note);符号和注释之间至少使用一个以上的空格分隔。

描述如下:
由于头文件中使用了如下注释,导致编译时提示(明明在代码中有的属性)属性不存在。
//开仓允许使用的最大资金

排查问题的方法如下:
在开始栏中打开工具:VS2015 x86 本机工具命令提示符
使用命令:cl -E -I路径 -I路径 ... -D预处理 ... 源文件.cpp > 输出文件
具体例子如下:
cl -E -I..\..\sourcebase\platform\. -I..\..\sourcebase\base\. -I..\..\sourcebase\version\. -DTRADERAPI -DLIB_ALGO_API_EXPORT ..\..\sourceapp\traderapi\TraderApiImpl.cpp cltxt
执行后会生成输出文件:cltxt
打开该文件,找到报错的地方查看其报错的属性是否真正存在。

我这次通过输出文件看,确实不存在,分析下来是由于中文注释导致预编译时,在剔除注释代码的时候,编译器误输出了真正的代码,按照如下修改后编译正常。
/* 开仓允许使用的最大资金 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值