Es ist möglich, GCC mitzuteilen, dass es kein Padding für die Struktur verwenden soll. Dies geschieht mit __attribute__((packed))
.Wie deklariert gepackte Struktur (ohne Auffüllung) für LLVM?
typedef struct {
uint8_t startSymbol;
uint8_t packetType;
uint32_t deviceId;
uint16_t packetCRC;
} PacketData __attribute__((packed));
Der neueste Xcode verwendet jedoch LLVM und erkennt das Attribut nicht. Wie definiert man gepackte Struktur für LLVM?
Die vollständige Beschreibung des Problems könnte here
UPDATE Ich verwende Xcode 4.5.1 für iOS, die Apple verwendet LLVM 4.1 Compiler gefunden werden. Ich erhalte in Xcode im obigen Codebeispiel die Warnung "gepackte Attribute ignorieren".
Fehle ich etwas oder dies ist eine sehr neue Feature-Entfernung? Das letzte Mal, als ich überprüft habe, unterstützt clang '__attribute __ ((gepackt))' ... –
clang unterstützt genau das gleiche '__attribut __ ((gepackt))' pragma ... – birryree
Keine Ahnung :) Ich benutze Xcode 4.5. 1 für iOS, die Apple LLVM 4.1 Compiler verwendet. – Centurion