Można powiedzieć GCC, że nie powinien używać dopełnienia dla struktury. Odbywa się to za pomocą __attribute__((packed))
.Jak zadeklarować spakowaną strukturę (bez wypełnienia) dla LLVM?
typedef struct {
uint8_t startSymbol;
uint8_t packetType;
uint32_t deviceId;
uint16_t packetCRC;
} PacketData __attribute__((packed));
Jednak najnowszy Xcode używa LLVM i nie rozpoznaje atrybutu. Jak zdefiniować strukturę upakowaną dla LLVM?
Pełen opis problemu można znaleźć here
UPDATE Używam Xcode 4.5.1 dla iOS firmy Apple, który używa kompilatora LLVM 4.1. Otrzymuję "pakowany" atrybut ignorowany "ostrzeżenie w Xcode w powyższym przykładzie kodu.
Czy brakuje mi czegoś lub jest to bardzo nowa funkcja usuwania? Ostatni raz kiedy sprawdziłem, clang wspierany '__attribute __ ((spakowany))' ... –
clang obsługuje dokładnie to samo '__attribute __ ((pakowane))' pragma ... – birryree
Nie mam pojęcia :) Używam Xcode 4.5. 1 dla iOS, który używa kompilatora Apple LLVM 4.1. – Centurion