本文介绍: qt相关宏
Q_UNLIKELY(expr): 向编译器提示封闭条件,expr,很可能评估为false。 使用该宏可以帮助编译器优化代码。
Q_LIKELY(expr): 向编译器提示封闭条件,expr,很可能评估为true。 使用该宏可以帮助编译器优化代码。
Q_BYTE_ORDER、
Q_BIG_ENDIAN、
Q_LITTLE_ENDIAN:
用于确定系统用于在内存中存储数据的字节顺序。即,您的系统是小端还是大端。
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
    ...
#endif
or
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
    ...
#endif

Q_ASSUME:
void Q_ASSUME(bool expr):
使编译器假设expr是true。该宏通过向编译器提供有关编译器无法了解的条件的提示,对于改进代码生成非常有用。但是,不能保证编译器实际上会使用这些提示。
注意
:Q_LIKELY() 告诉编译器该表达式是可能的,但不是唯一的可能性。Q_ASSUME 告诉编译器这是唯一的可能性。
Q_ASSERT_X
#include <QtGlobal>
int divide(int a, int b)
{
    Q_ASSERT_X(b != 0, "divide", "division by zero");
    return a / b;
}
输出信息:ASSERT failure in divide: “division by zero”, file div.cpp, line 7
Q_ASSERT:
如果出现以下情况,则打印包含源代码文件名和行号的警告消息test是false。
Q_ASSERT() 对于在开发过程中测试前置条件和后置条件非常有用。QT_NO_DEBUG如果在编译期间定义,它不会执行任何操作。
// File: div.cpp 
#include <QtGlobal> 
int divide(int a, int b) 
{     
    Q_ASSERT(b != 0);     
    return a / b; 
}
输出信息:ASSERT: “b != 0” in file div.cpp, line 7
QT_VERSION:
该宏扩展了 0xMMNNPP 形式的数值(MM = 主版本,NN = 小版本,PP = 补丁),指定 Qt 的版本号。例如,如果您针对 Qt 4.1.2 编译应用程序,则 QT_VERSION 宏将扩展为 0x040102。
您可以使用 QT_VERSION 来使用最新的 Qt 功能(如果可用)。
#if QT_VERSION >= 0x040100
    QIcon icon = style()->standardIcon(QStyle::SP_TrashIcon);#else
    QPixmap pixmap = style()->standardPixmap(QStyle::SP_TrashIcon);
    QIcon icon(pixmap);
#endif
编译宏:
Q_CC_MSVC(Windows),
Q_CC_INTEL,
Q_CC_CLANG(
Clang苹果
),
Q_CC_GNU(gcc)
库宏:
Q_DECL_EXPORT ,
Q_DECL_IMPORT
操作系统平台宏:
Q_OS_IOS,
Q_OS_LINUXQ_OS_MACOS Q_OS_UNIX Q_OS_WIN32 Q_OS_WIN64 Q_OS_WIN 
芯片架构宏:
Q_PROCESSOR_X86 
Q_PROCESSOR_X86_32 Q_PROCESSOR_X86_64
Q_PROCESSOR_ARM Q_PROCESSOR_ARM_V5 Q_PROCESSOR_ARM_V6 Q_PROCESSOR_ARM_V7
Q_PROCESSOR_MIPS 
Q_PROCESSOR_MIPS_32 
Q_PROCESSOR_MIPS_64

原文地址:https://blog.csdn.net/cai742925624/article/details/134813506

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_50947.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注