<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
//...
#endifQ_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.