QT学习笔记-C/C++的代码折叠#pragma region以及消除[-Wunknown-pragmas]构建告警
·
QT学习笔记-C/C++的代码折叠#pragma region以及消除[-Wunknown-pragmas]构建告警
QT中C/C++代码实现折叠
作为一个从C#过度到C/C++的老码农,总是期望C#的一些优点同样能够从QT的C/C++中能够实现。本文就说一下代码折叠,个人认为代码折叠应该算是编码规范的一个基本要求,合理的折叠代码可以增强代码的可读性和可维护性。C#中实现代码折叠很方便,可以用#region … #endregion,如下:
#region 字段定义
private static readonly string CONFIGFILELOCK = "CONFIGFILELOCK";
private static readonly string APPSETTINGS = "AppSettings";
private static readonly string PROSETTINGS = "ProSettings";
private static IConfigurationRoot configurationRoot = null;
#endregion
那么QT的C/C++中是否有类似的功能?答案是肯定的,经过查阅,可以通过#pragma region …{ … #pragma endregion},如下:
#include "dataprocessor.h"
namespace Wongoing_Basic
{
#pragma region 构造方法 {
DataProcessor::DataProcessor()
{
}
#pragma endregion 构造方法}
#pragma region 静态方法 {
/**
* @brief formatHexStr 格式化16进制字符串,使每2个字符中间加1个空格
* @param hexStr 16进制字符串
* @return 返回格式化后的16进制字符串
*/
QString DataProcessor::formatHexStr(QString hexStr)
{
int len = hexStr.length();
if (len % 2 == 0 && len > 2)
{
for(int i = len - 2; i > 0; i -=2)
{
hexStr.insert(i, QChar(' '));
}
}
return hexStr;
}
#pragma endregion}
}
折叠效果如下图:

消除[-Wunknown-pragmas]构建告警
虽然通过#pragma region在QT的C/C++编码中实现了代码的折叠效果,但是在构建的时候会出现[-Wunknown-pragmas]警告,而且是代码中用到了多少#pragma region就会出现多少个警告,如下图:

随着代码的增多,会生成满屏的警告,而这些警告对我们调试代码毫无意义,而且影响查找有效的警告信息。有没有办法取消这个警告信息呢,答案是肯定的,我们可以在qt的pro工程文件中增加一下内容实现:
# 禁用-Wunknown-pragmas报警
CONFIG += warn_off
QMAKE_CXXFLAGS += -Wall
QMAKE_CXXFLAGS += -Wno-unknown-pragmas
由于默认qt是开启显示所有告警信息的,因此先通过CONFIG+=warn_off把qt自己的告警功能关闭,然后把QMAKE_CXXFLAGS += -Wno-unknown-pragmas加到QMAKE_CXXFLAGS += -Wall后面,不能放到前面,否则不会生效。
如下:

重新构建如下图:

更多推荐



所有评论(0)