Ich portiere derzeit etwas Code von einer anderen Plattform und bools auf der neuen Plattform sind 1-Byte-Größe. Dies bricht unseren Ladecode, da die Werte als 32-Bit-Werte gespeichert werden. Darüber hinaus ist die Geschwindigkeit ein kritisches Thema auf unserer Plattform und wir möchten 32-Bit-Boole verwenden, da der Prozessor nativ mit 32 Bit arbeitet und zusätzliche Operationen zum Vergleichen von Nicht-32-Bit-Bools erfordert.Wie erzwinge ich die Größe eines 'Bool' unter GCC
Gibt es eine Möglichkeit, gcc zu zwingen, 32-Bit-Bools anstelle von 8-Bit-Bools zu verwenden?
Leider kenne ich nur den -mone-byte-bool Schalter auf Apples GCC, aber es tut das Gegenteil von dem, was Sie wollen. –
Ich nehme an, dass die Festlegung Ihres Ladecodes nicht in Frage kommt. (es sollte wirklich keine Annahmen über die Größe der eingebauten Typen wie "int" oder "bool" machen) – jalf
Es stellt sich heraus, dass der Ladecode den Unterschied in den Größen bereits korrekt behandelt. Das Problem kam von einem anderen Teil des Ladecodes, der davon ausging, dass eine Aufzählung 4 Byte groß wäre. Das wurde gelöst, indem man einfach einen "FORCE_DWORD" -Wert eingab. –