<QtProcessorDetection> - Architecture-specific Macro Definitions
Die Header-Datei <QtProcessorDetection> enthält verschiedene architekturbezogene Makros. Mehr dazu...
| Header: | #include <QtProcessorDetection> |
Makros
Ausführliche Beschreibung
Die Header-Datei <QtProcessorDetection> deklariert eine Reihe von Makros (Q_PROCESSOR_*), die definiert sind, wenn die Anwendung für bestimmte Prozessorarchitekturen kompiliert wird. Beispielsweise ist das Makro Q_PROCESSOR_X86 definiert, wenn die Anwendung für x86-Prozessoren kompiliert wird.
Der Zweck dieser Makros besteht darin, Programmierern die Möglichkeit zu geben, architekturspezifischen Code in ihre Anwendung einzufügen.
Makro-Dokumentation
QT_POINTER_SIZE
Erweitert sich auf die Größe eines Zeigers in Byte (4 oder 8). Dies entspricht „ sizeof(void *) “, kann jedoch in einer Präprozessor-Direktive verwendet werden.
Q_BIG_ENDIAN
Dieses Makro stellt einen Wert dar, den Sie mit dem Makro ` Q_BYTE_ORDER ` vergleichen können, um die Endian-Richtung Ihres Systems zu ermitteln. In einem Big-Endian-System wird das höchstwertige Byte an der niedrigsten Adresse gespeichert. Die übrigen Bytes folgen in absteigender Reihenfolge ihrer Wertigkeit.
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
//...
#endifSiehe auch „ Q_BYTE_ORDER “ und „ Q_LITTLE_ENDIAN “.
Q_BYTE_ORDER
Mit diesem Makro lässt sich die Byte-Reihenfolge ermitteln, die Ihr System zum Speichern von Daten im Arbeitsspeicher verwendet, d. h., ob Ihr System Little-Endian oder Big-Endian ist. Es wird von Qt XML auf eines der Makros „ Q_LITTLE_ENDIAN “ oder „ Q_BIG_ENDIAN “ gesetzt. Normalerweise müssen Sie sich keine Gedanken über die Endian-Reihenfolge machen, aber es kann vorkommen, dass Sie dies tun müssen, beispielsweise wenn Sie wissen möchten, welches Byte einer Ganzzahl oder eines UTF-16-Zeichens an der niedrigsten Adresse gespeichert ist. Die Endian-Reihenfolge ist im Netzwerkbereich wichtig, wo Computer mit unterschiedlichen Werten für `Q_BYTE_ORDER` Daten untereinander austauschen müssen.
Verwenden Sie dieses Makro wie in den folgenden Beispielen.
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
//...
#endif
//or
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
//...
#endifSiehe auch Q_BIG_ENDIAN und Q_LITTLE_ENDIAN.
Q_LITTLE_ENDIAN
Dieses Makro stellt einen Wert dar, den Sie mit dem Makro „ Q_BYTE_ORDER “ vergleichen können, um die Endian-Richtung Ihres Systems zu ermitteln. In einem Little-Endian-System wird das niedrigstwertige Byte an der niedrigsten Adresse gespeichert. Die übrigen Bytes folgen in aufsteigender Reihenfolge ihrer Wertigkeit.
#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
//...
#endifSiehe auch „ Q_BYTE_ORDER “ und „ Q_BIG_ENDIAN “.
Q_PROCESSOR_X86
Wird gesetzt, wenn die Anwendung für x86-Prozessoren kompiliert wird. Qt unterstützt derzeit zwei x86-Varianten: Q_PROCESSOR_X86_32 und Q_PROCESSOR_X86_64.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_S390
Wird gesetzt, wenn die Anwendung für S/390-Prozessoren kompiliert wird. Qt unterstützt eine optionale Variante von S/390: Q_PROCESSOR_S390_X.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_ALPHA
Ist definiert, wenn die Anwendung für Alpha-Prozessoren kompiliert wird.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_ARM
Wird festgelegt, wenn die Anwendung für ARM-Prozessoren kompiliert wird. Qt unterstützt derzeit drei optionale ARM-Revisionen: Q_PROCESSOR_ARM_V5, Q_PROCESSOR_ARM_V6 und Q_PROCESSOR_ARM_V7.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_ARM_V5
Wird definiert, wenn die Anwendung für ARMv5-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_ARM “ wird ebenfalls definiert, wenn „Q_PROCESSOR_ARM_V5“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_ARM_V6
Wird definiert, wenn die Anwendung für ARMv6-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_ARM “ und „ Q_PROCESSOR_ARM_V5 “ werden ebenfalls definiert, wenn „Q_PROCESSOR_ARM_V6“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_ARM_V7
Wird definiert, wenn die Anwendung für ARMv7-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_ARM “, „ Q_PROCESSOR_ARM_V5 “ und „ Q_PROCESSOR_ARM_V6 “ werden ebenfalls definiert, wenn „Q_PROCESSOR_ARM_V7“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_AVR32
Ist definiert, wenn die Anwendung für AVR32-Prozessoren kompiliert wird.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_BLACKFIN
Ist definiert, wenn die Anwendung für Blackfin-Prozessoren kompiliert wird.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_HPPA
Ist definiert, wenn die Anwendung für PA-RISC-Prozessoren kompiliert wird.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_IA64
Ist definiert, wenn die Anwendung für IA-64-Prozessoren kompiliert wurde. Dazu gehören alle Itanium- und Itanium-2-Prozessoren.
Siehe auch „ QSysInfo::buildCpuArchitecture“ ().
[since 6.5] Q_PROCESSOR_LOONGARCH
Ist definiert, wenn die Anwendung für LoongArch-Prozessoren kompiliert wird.
Dieses Makro wurde in Qt 6.5 eingeführt.
Siehe auch ` QSysInfo::buildCpuArchitecture()`.
[since 6.5] Q_PROCESSOR_LOONGARCH_32
Wird definiert, wenn die Anwendung für 32-Bit-LoongArch-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_LOONGARCH “ wird ebenfalls definiert, wenn „Q_PROCESSOR_LOONGARCH_32“ definiert ist.
Dieses Makro wurde in Qt 6.5 eingeführt.
Siehe auch ` QSysInfo::buildCpuArchitecture()`.
[since 6.5] Q_PROCESSOR_LOONGARCH_64
Wird definiert, wenn die Anwendung für 64-Bit-LoongArch-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_LOONGARCH “ wird ebenfalls definiert, wenn „Q_PROCESSOR_LOONGARCH_64“ definiert ist.
Dieses Makro wurde in Qt 6.5 eingeführt.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_M68K
Ist definiert, wenn die Anwendung für Motorola-68000-Prozessoren kompiliert wird.
Siehe auch „ QSysInfo::buildCpuArchitecture“ ().
Q_PROCESSOR_MIPS
Wird definiert, wenn die Anwendung für MIPS-Prozessoren kompiliert wird. Qt unterstützt derzeit sieben MIPS-Versionen: Q_PROCESSOR_MIPS_I, Q_PROCESSOR_MIPS_II, Q_PROCESSOR_MIPS_III, Q_PROCESSOR_MIPS_IV, Q_PROCESSOR_MIPS_V, Q_PROCESSOR_MIPS_32 und Q_PROCESSOR_MIPS_64.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_MIPS_32
Wird definiert, wenn die Anwendung für MIPS32-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_MIPS “, „ Q_PROCESSOR_MIPS_I “ und „ Q_PROCESSOR_MIPS_II “ werden ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_32“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_MIPS_64
Wird definiert, wenn die Anwendung für MIPS64-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_MIPS “, „ Q_PROCESSOR_MIPS_I “, „ Q_PROCESSOR_MIPS_II “, „ Q_PROCESSOR_MIPS_III “, „ Q_PROCESSOR_MIPS_IV “ und „ Q_PROCESSOR_MIPS_V “ werden ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_64“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_MIPS_I
Wird definiert, wenn die Anwendung für MIPS-I-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_MIPS “ wird ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_I“ definiert ist.
Siehe auch ` QSysInfo::buildCpuArchitecture()`.
Q_PROCESSOR_MIPS_II
Wird definiert, wenn die Anwendung für MIPS-II-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_MIPS “ und „ Q_PROCESSOR_MIPS_I “ werden ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_II“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_MIPS_III
Wird definiert, wenn die Anwendung für MIPS-III-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_MIPS “, „ Q_PROCESSOR_MIPS_I “ und „ Q_PROCESSOR_MIPS_II “ werden ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_III“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_MIPS_IV
Wird definiert, wenn die Anwendung für MIPS-IV-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_MIPS “, „ Q_PROCESSOR_MIPS_I “, „ Q_PROCESSOR_MIPS_II “ und „ Q_PROCESSOR_MIPS_III “ werden ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_IV“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_MIPS_V
Wird definiert, wenn die Anwendung für MIPS-V-Prozessoren kompiliert wird. Die Makros „ Q_PROCESSOR_MIPS “, „ Q_PROCESSOR_MIPS_I “, „ Q_PROCESSOR_MIPS_II “, „ Q_PROCESSOR_MIPS_III “ und „ Q_PROCESSOR_MIPS_IV “ werden ebenfalls definiert, wenn „Q_PROCESSOR_MIPS_V“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_POWER
Wird definiert, wenn die Anwendung für POWER-Prozessoren kompiliert wird. Qt unterstützt derzeit zwei Power-Varianten: Q_PROCESSOR_POWER_32 und Q_PROCESSOR_POWER_64.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_POWER_32
Wird definiert, wenn die Anwendung für 32-Bit-Power-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_POWER “ wird ebenfalls definiert, wenn „Q_PROCESSOR_POWER_32“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_POWER_64
Wird definiert, wenn die Anwendung für 64-Bit-Power-Prozessoren kompiliert wird. Das Makro ` Q_PROCESSOR_POWER ` wird ebenfalls definiert, wenn `Q_PROCESSOR_POWER_64` definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_RISCV
Wird gesetzt, wenn die Anwendung für RISC-V-Prozessoren kompiliert wird. Qt unterstützt derzeit zwei RISC-V-Varianten: Q_PROCESSOR_RISCV_32 und Q_PROCESSOR_RISCV_64.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_RISCV_32
Wird definiert, wenn die Anwendung für 32-Bit-RISC-V-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_RISCV “ wird ebenfalls definiert, wenn „Q_PROCESSOR_RISCV_32“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_RISCV_64
Wird definiert, wenn die Anwendung für 64-Bit-RISC-V-Prozessoren kompiliert wird. Das Makro ` Q_PROCESSOR_RISCV ` wird ebenfalls definiert, wenn `Q_PROCESSOR_RISCV_64` definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_S390_X
Wird definiert, wenn die Anwendung für S/390x-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_S390 “ wird ebenfalls definiert, wenn „Q_PROCESSOR_S390_X“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_SH
Wird gesetzt, wenn die Anwendung für SuperH-Prozessoren kompiliert wird. Qt unterstützt derzeit eine SuperH-Revision: Q_PROCESSOR_SH_4A.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_SH_4A
Wird definiert, wenn die Anwendung für SuperH-4A-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_SH “ wird ebenfalls definiert, wenn „Q_PROCESSOR_SH_4A“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_SPARC
Wird definiert, wenn die Anwendung für SPARC-Prozessoren kompiliert wird. Qt unterstützt derzeit eine optionale SPARC-Revision: Q_PROCESSOR_SPARC_V9.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_SPARC_V9
Wird definiert, wenn die Anwendung für SPARC-V9-Prozessoren kompiliert wird. Das Makro „ Q_PROCESSOR_SPARC “ wird ebenfalls definiert, wenn „Q_PROCESSOR_SPARC_V9“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_X86_32
Wird definiert, wenn die Anwendung für 32-Bit-x86-Prozessoren kompiliert wird. Dazu gehören alle i386-, i486-, i586- und i686-Prozessoren. Das Makro „ Q_PROCESSOR_X86 “ wird ebenfalls definiert, wenn „Q_PROCESSOR_X86_32“ definiert ist.
Siehe auch QSysInfo::buildCpuArchitecture().
Q_PROCESSOR_X86_64
Wird definiert, wenn die Anwendung für 64-Bit-x86-Prozessoren kompiliert wird. Dazu gehören alle AMD64-, Intel 64- und sonstigen x86_64/x64-Prozessoren. Das Makro ` Q_PROCESSOR_X86 ` wird ebenfalls definiert, wenn `Q_PROCESSOR_X86_64` definiert ist.
Siehe auch 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.