Ich habe mich gefragt, ob es eine GCC C Compiler-Direktive gibt, die es mir erlaubt, die Bit-Reihenfolge für das Packen einer Struktur zu bestimmen? Etwas wie:
%Vor%Das Grundprinzip für solch ein Bedürfnis ist, dass ich die folgende Struktur habe:
%Vor%Mit dieser Struktur möchte ich, dass der Compiler es so packt:
%Vor%Statt wie es GCC tut:
%Vor%Ich habe es mit MCUs zu tun, die riesige Header-Dateien haben, die Strukturen haben, die Bit-Offsets nach vorgegebenen Hardware-Adressen berechnen. Ich hoffe, dass es eine Compiler-Direktive in GCC C Compiler gibt, die den Bit-Reihenfolge-Swap für mich durchführt, bevor ich versuche, alle Felder in der vom Hersteller bereitgestellten Datei umzudrehen.
Welche Version von GCC verwenden Sie und welche Plattform? Ein Pragma existiert, das mag den Trick, aber es funktioniert nicht auf x86 beginnend mit GCC 4.
%Vor%Weitere Details unter:
Wenn es dir nichts ausmacht, GCC neu zu erstellen, sind alle relevanten Build-Einstellungen hier (suche nach bitfield
):
Einige Details über Bitfelder, die schlecht sind:
Tags und Links c gcc compiler-construction microcontroller bit-fields