- dans le texte il manque un bout de phrase
Corrigé.
- ce serait pas mal de définir la structure eeprom_data avec __attribute__ ((packed)) partout (ça manque au tout début) et expliquer à quoi ça sert de mettre ce mot clé
Idem.
- tel que vous l'utilisez, il me semble que le mot clé struct n'est plus obligatoire, le typedef est implicite dans ce namespace donc
Certes mais j'ai toujours évité les typedefs pour les structures, un vieil héritage d'OpenBSD !
J'ai gardé cette habitude, qui a l'avantage de passer partout.
A noter :
Imaginons qu'une structure eeprom_data soit déclarée dans un fichier eeprom_data.h.
Dans un autre fichier header machin.h, un prototype de fonction :
int write_data(struct eeprom_data *data);
Au lieu d'inclure eeprom_data.h il est possible d'écrire :
struct eeprom_data;
int write_data(struct eeprom_data *data);
A partir du moment où data est un pointeur, le compilateur n'a pas besoin de connaître la taille de la structure.
Cette manière de faire n'est pas possible avec un typedef, sauf s'il est implicite bien sûr.
struct tm t = {0};
Un copier / coller malencontreux sans doute.
J'ai préféré ajouter ceci, plus explicite :
memset(&t, 0, sizeof(struct tm));
De toutes façons le éléments sont tous initialisés plus loin, à part tm_wday et tm_yday.