zahada delky struktury GCC

Miroslav Mraz mrazik na volny.cz
Pondělí Březen 11 20:25:10 CET 2024


To se sice doporučuje, ale asi to nepomůže. Já to sice taky nechápu, ale 
pomůže

typedef struct {
     union {
       struct {
           char         gsm_apn[32];                // module GSM APN
// ...
           double        gps_last_latitude;            // car last known 
latitude, *10^7 (GPS_FIXP_MULT)
           double        gps_last_longitude;           // car last known 
longitude, *10^7 (GPS_FIXP_MULT)
       }__attribute__((packed));
       uint8_t  ba[CFG_DATA_LEN - 4];
     };
     uint32_t crc32;
} app_data_cfg_t;

Mrazík

On 11. 03. 24 20:10, Jaroslav Buchta wrote:
> Muzete upresnit? Nechapu co mate na mysli. Myslim, ze to rozhodily ty 
> double i bez vlozene struct ale to bych musel znova zkusit.
> Jo a samozrejme 1e7 ma byt ta konstanta. Ono je to stejne lepsi ukladat 
> do int32*1e7 nez do double, aby to melo OK rozliseni (float nestaci ani 
> nahodou), ale je to konverze starsiho projektu a bude se to muset vic 
> predelat...
> A osvedcilo se pouziti kontroly static_assert (sizeof(app_data_cfg_t) == 
> CFG_DATA_LEN); jinak bych na to jen tak neprisel a je to dulezite kvuli 
> ulozisti...


Další informace o konferenci Hw-list