<QtProcessorDetection> - Architecture-specific Macro Definitions

<QtProcessorDetection> ヘッダーファイルには、アーキテクチャ固有のさまざまなマクロが含まれています。詳細...

Header: #include <QtProcessorDetection>

マクロ

詳細な説明

<QtProcessorDetection> ヘッダーファイルでは、アプリケーションが指定されたプロセッサアーキテクチャ向けにコンパイルされた場合に定義される一連のマクロ(Q_PROCESSOR_*)が宣言されています。たとえば、アプリケーションが x86 プロセッサ向けにコンパイルされた場合、Q_PROCESSOR_X86 マクロが定義されます。

これらのマクロの目的は、プログラマがアプリケーションにアーキテクチャ固有のコードを追加できるようにすることです。

マクロのドキュメント

QT_POINTER_SIZE

ポインタのサイズ(4 バイトまたは 8 バイト)に展開されます。これは `sizeof(void *) ` と同等ですが、プリプロセッサ指令内で使用することができます。

Q_BIG_ENDIAN

このマクロは、システムのエンディアン性を判定するために、マクロ `Q_BYTE_ORDER ` と比較できる値を表しています。ビッグエンディアンシステムでは、最上位バイトが最も低いアドレスに格納されます。その他のバイトは、重要度の高い順に続いて格納されます。

#if Q_BYTE_ORDER == Q_BIG_ENDIAN
//...
#endif

「 Q_BYTE_ORDER 」および「Q_LITTLE_ENDIAN 」も参照してください 。

Q_BYTE_ORDER

このマクロは、システムがメモリ内のデータを格納する際に使用するバイト順、つまりシステムがリトルエンディアンかビッグエンディアンかを判別するために使用できます。これはQtによって、Q_LITTLE_ENDIAN またはQ_BIG_ENDIAN のいずれかのマクロに設定されます。 通常、エンディアンについて気にする必要はありませんが、例えば、整数やUTF-16文字のどのバイトが最も低いアドレスに格納されているかを知る必要がある場合などには、考慮が必要になることがあります。エンディアンは、Q_BYTE_ORDERの値が異なるコンピュータ間でデータをやり取りするネットワーク環境において重要です。

このマクロは、以下の例のように使用してください。

#if Q_BYTE_ORDER == Q_BIG_ENDIAN
//...
#endif

//or

#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
//...
#endif

Q_BIG_ENDIAN およびQ_LITTLE_ENDIANも参照してください 。

Q_LITTLE_ENDIAN

このマクロは、システムのエンディアン性を判断するために、マクロ `Q_BYTE_ORDER ` と比較できる値を表しています。リトルエンディアンシステムでは、最下位バイトが最も低いアドレスに格納されます。その他のバイトは、重要度の高い順に続いて格納されます。

#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
//...
#endif

「 Q_BYTE_ORDER 」および「Q_BIG_ENDIAN 」も参照してください 。

Q_PROCESSOR_X86

アプリケーションが x86 プロセッサ向けにコンパイルされている場合に定義されます。Qt は現在、Q_PROCESSOR_X86_32 およびQ_PROCESSOR_X86_64 の 2 つの x86 バリアントをサポートしています。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_S390

アプリケーションが S/390 プロセッサ向けにコンパイルされている場合に定義されます。Qt は、S/390 のオプションのバリエーションとしてQ_PROCESSOR_S390_X をサポートしています。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_ALPHA

アプリケーションがAlphaプロセッサ向けにコンパイルされている場合に定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_ARM

アプリケーションがARMプロセッサ向けにコンパイルされている場合に定義されます。Qtは現在、Q_PROCESSOR_ARM_V5 、Q_PROCESSOR_ARM_V6 、Q_PROCESSOR_ARM_V7 の3つのオプションのARMリビジョンをサポートしています。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_ARM_V5

アプリケーションがARMv5プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_ARM_V5が定義されている場合、Q_PROCESSOR_ARM マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_ARM_V6

アプリケーションがARMv6プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_ARM_V6が定義されている場合、Q_PROCESSOR_ARM およびQ_PROCESSOR_ARM_V5 マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_ARM_V7

アプリケーションがARMv7プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_ARM_V7が定義されている場合、Q_PROCESSOR_ARM 、Q_PROCESSOR_ARM_V5 、およびQ_PROCESSOR_ARM_V6 マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_AVR32

アプリケーションがAVR32プロセッサ向けにコンパイルされている場合に定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_BLACKFIN

アプリケーションがBlackfinプロセッサ向けにコンパイルされている場合に定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_HPPA

アプリケーションがPA-RISCプロセッサ向けにコンパイルされている場合に定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_IA64

アプリケーションがIA-64プロセッサ向けにコンパイルされている場合に定義されます。これには、すべてのItaniumおよびItanium 2プロセッサが含まれます。

QSysInfo::buildCpuArchitecture()も参照してください 。

[since 6.5] Q_PROCESSOR_LOONGARCH

アプリケーションがLoongArchプロセッサ向けにコンパイルされている場合に定義されます。

このマクロは Qt 6.5 で導入されました。

QSysInfo::buildCpuArchitecture()も参照してください 。

[since 6.5] Q_PROCESSOR_LOONGARCH_32

アプリケーションが32ビットLoongArchプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_LOONGARCH_32が定義されている場合、Q_PROCESSOR_LOONGARCH マクロも定義されます。

このマクロは Qt 6.5 で導入されました。

QSysInfo::buildCpuArchitecture()も参照してください 。

[since 6.5] Q_PROCESSOR_LOONGARCH_64

アプリケーションが64ビットLoongArchプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_LOONGARCH_64が定義されている場合、Q_PROCESSOR_LOONGARCH マクロも定義されます。

このマクロは Qt 6.5 で導入されました。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_M68K

アプリケーションがMotorola 68000プロセッサ向けにコンパイルされている場合に定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS

アプリケーションがMIPSプロセッサ向けにコンパイルされている場合に定義されます。Qtは現在、7つのMIPSリビジョンをサポートしています:Q_PROCESSOR_MIPS_I 、Q_PROCESSOR_MIPS_II 、Q_PROCESSOR_MIPS_III 、Q_PROCESSOR_MIPS_IV 、Q_PROCESSOR_MIPS_V 、Q_PROCESSOR_MIPS_32 、およびQ_PROCESSOR_MIPS_64 。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_32

アプリケーションがMIPS32プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_32が定義されている場合、Q_PROCESSOR_MIPS 、Q_PROCESSOR_MIPS_I 、およびQ_PROCESSOR_MIPS_II の各マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_64

アプリケーションがMIPS64プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_64が定義されている場合、Q_PROCESSOR_MIPS 、Q_PROCESSOR_MIPS_I 、Q_PROCESSOR_MIPS_II 、Q_PROCESSOR_MIPS_III 、Q_PROCESSOR_MIPS_IV 、およびQ_PROCESSOR_MIPS_V の各マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_I

アプリケーションがMIPS-Iプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_Iが定義されている場合、Q_PROCESSOR_MIPS マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_II

アプリケーションがMIPS-IIプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_IIが定義されている場合、Q_PROCESSOR_MIPS およびQ_PROCESSOR_MIPS_I マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_III

アプリケーションがMIPS-IIIプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_IIIが定義されている場合、Q_PROCESSOR_MIPS 、Q_PROCESSOR_MIPS_I 、およびQ_PROCESSOR_MIPS_II のマクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_IV

アプリケーションがMIPS-IVプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_IV が定義されている場合、Q_PROCESSOR_MIPS 、Q_PROCESSOR_MIPS_I 、Q_PROCESSOR_MIPS_II 、およびQ_PROCESSOR_MIPS_III マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_MIPS_V

アプリケーションがMIPS-Vプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_MIPS_Vが定義されている場合、Q_PROCESSOR_MIPS 、Q_PROCESSOR_MIPS_I 、Q_PROCESSOR_MIPS_II 、Q_PROCESSOR_MIPS_III 、およびQ_PROCESSOR_MIPS_IV の各マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_POWER

アプリケーションがPOWERプロセッサ向けにコンパイルされている場合に定義されます。Qtは現在、Q_PROCESSOR_POWER_32 およびQ_PROCESSOR_POWER_64 の2つのPowerバリアントをサポートしています。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_POWER_32

アプリケーションが32ビットPowerプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_POWER_32が定義されている場合、Q_PROCESSOR_POWER マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_POWER_64

アプリケーションが64ビットPowerプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_POWER_64が定義されている場合、Q_PROCESSOR_POWER マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_RISCV

アプリケーションがRISC-Vプロセッサ向けにコンパイルされている場合に定義されます。Qtは現在、Q_PROCESSOR_RISCV_32 およびQ_PROCESSOR_RISCV_64 の2つのRISC-Vバリエーションをサポートしています。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_RISCV_32

アプリケーションが32ビットRISC-Vプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_RISCV_32が定義されている場合、Q_PROCESSOR_RISCV マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_RISCV_64

アプリケーションが64ビットRISC-Vプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_RISCV_64が定義されている場合、Q_PROCESSOR_RISCV マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_S390_X

アプリケーションが S/390x プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_S390_X が定義されている場合、Q_PROCESSOR_S390 マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_SH

アプリケーションがSuperHプロセッサ向けにコンパイルされている場合に定義されます。Qtは現在、1つのSuperHリビジョンをサポートしています:Q_PROCESSOR_SH_4A 。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_SH_4A

アプリケーションがSuperH 4Aプロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_SH_4Aが定義されている場合、Q_PROCESSOR_SH マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_SPARC

アプリケーションがSPARCプロセッサ向けにコンパイルされている場合に定義されます。Qtは現在、1つのオプションのSPARCリビジョン(Q_PROCESSOR_SPARC_V9 )をサポートしています。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_SPARC_V9

アプリケーションがSPARC V9プロセッサ向けにコンパイルされている場合に定義されます。Q_PROCESSOR_SPARC_V9が定義されている場合、Q_PROCESSOR_SPARC マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_X86_32

アプリケーションが 32 ビット x86 プロセッサ向けにコンパイルされている場合に定義されます。これには、すべての i386、i486、i586、および i686 プロセッサが含まれます。Q_PROCESSOR_X86_32 が定義されている場合、Q_PROCESSOR_X86 マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

Q_PROCESSOR_X86_64

アプリケーションが64ビットx86プロセッサ向けにコンパイルされている場合に定義されます。これには、すべてのAMD64、Intel 64、およびその他のx86_64/x64プロセッサが含まれます。Q_PROCESSOR_X86_64が定義されている場合、Q_PROCESSOR_X86 マクロも定義されます。

QSysInfo::buildCpuArchitecture()も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.