È possibile indicare a GCC che non dovrebbe utilizzare il riempimento per la struttura. Questo viene fatto usando __attribute__((packed))
.Come dichiarare struct packed (senza padding) per LLVM?
typedef struct {
uint8_t startSymbol;
uint8_t packetType;
uint32_t deviceId;
uint16_t packetCRC;
} PacketData __attribute__((packed));
Tuttavia, il nuovo Xcode utilizza LLVM e non riconosce l'attributo. Come definire structed struct for LLVM?
La descrizione completa del problema potrebbe essere trovata here
UPDATE sto usando Xcode 4.5.1 per iOS di Apple che utilizza LLVM 4.1 del compilatore. Ricevo l'avviso "attributo" ignorato "in Xcode nell'esempio di codice sopra riportato.
Mi manca qualcosa o questa è una rimozione di funzionalità molto nuova? L'ultima volta che ho controllato, clang ha supportato '__attribute __ ((packed))' ... –
clang supporta lo stesso identico '__attribute __ ((packed))' pragma ... – birryree
Non ho idea :) Sto usando Xcode 4.5. 1 per iOS che utilizza il compilatore Apple LLVM 4.1. – Centurion