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

Siehe 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
//...
#endif

Siehe 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
//...
#endif

Siehe 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.