Qt中用//进行中文注释可能导致意外的BUG

一、问题描述

//或者///都为qt中的注释,理应后面的内容应该与是否为中文没有关系,但有时还是会发生一些莫名其妙的bug,本项目使用MSVC2017编译器,如//后面用英文注释就没事,用中文就会有报错,或者某些中文没事,换个排序或删掉加上某个字就会报错:

二、解决方案

这不是中文注释本身有问题,而是当前文件是UTF-8无BOM,且当前工程没有全局/utf-8,在这种情况下msvc会把它按当前代码页去解释,结尾会留下一个"悬空"的双字节前导字节,结果这一行的//注释没有在换行处正常结束,下一行代码被吞进注释里了,所以报错,某些看起来能编译的中文注释,只是字节序列碰巧没有踩到这个坑,处理方法是将文件改为UTF-8with BOM,在qt的项目编辑区右键,选择 Add UTF-8 BOM on Save,保存即可

相关推荐
Ulyanov18 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio的定位革命与技术架构
开发语言·python·qt·系统仿真·雷达电子对抗仿真
Ulyanov19 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio入门实战:智能登录系统开发
开发语言·python·qt·雷达电子对抗
czxyvX20 小时前
2-Qt信号与槽
c++·qt
Ulyanov20 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio环境搭建与核心工作区详解
开发语言·python·qt·系统仿真·雷达电子战系统仿真
我在人间贩卖青春20 小时前
Qt 信号与槽的 5 种连接方式
qt·信号槽
曾几何时`20 小时前
QT——对象树
开发语言·qt
汪宁宇20 小时前
(C++) Qt5.15.12 + GDAL库 等高线生成示例代码
c++·qt·等高线·gdal·等值线·rec533
我在人间贩卖青春21 小时前
Qt 元对象系统(MOC)
qt·moc·元对象
特立独行的猫a1 天前
HarmonyOS鸿蒙PC开源QT软件移植:移植开源文本编辑器 NotePad--(Ndd)到鸿蒙 PC实践总结
qt·开源·notepad++·harmonyos·notepad--·鸿蒙pc
Acnidouwo1 天前
QT程序的dpi导致显示异常处理方法
开发语言·qt