Citation:
Tu interprètes mal le truc.
Si GENERATE_ENUM_STRINGS n'est pas défini, on a un garde d'inclusion normal: On vérifie que DAYS_H n'est pas défini (sinon on saute tout l'en-tête) et on le définit.
Si GENERATE_ENUM_STRINGS est défini, on inclut tout l'en-tête même si DAYS_H est déjà défini, et on ne le définit pas soi-même.
Ok donc avec l'inclusion nécessaire avec le GENERATE_ENUM_STRINGS, on est obligé en fait de parcourir deux fois le header (une première pour définir l'énum et une deuxième quand la génération des strings est en cours) c'est ça ?