Schéma de nommage pour les typedefs

Je travaille sur une bibliothèque qui utilise intensivement des constructions comme

typedef struct foo_bar_s { ... } foo_bar_t; 

Il est déconseillé d’utiliser le suffixe _t, car il s’agit d’un espace de noms réservé POSIX. Le suffixe _s pour les structures est également inutile. Alors j’ai pensé que je pouvais tout changer en

 typedef struct foo_bar { ... } foo_bar; 

ou si le nom de la structure n’est pas nécessaire

 typedef struct { ... } foo_bar; 

Cependant, je ne peux plus distinguer les typedefs des symboles ordinaires (variables, etc.). Est-ce vraiment une si grosse affaire et devrais-je utiliser un schéma de nommage différent pour les typedefs? Ou est-ce que cela n’a pas tellement d’importance?

Je ne suis vraiment pas sûr. Qu’est-ce que tu penses? Aussi, quelles recommandations avez-vous pour les schémas de nommage typedef?

Bien que “_t” soit réservé, il est très peu probable que vous renconsortingez un problème. Cependant, cette convention est un vestige d’anciennes versions de C dans lesquelles cette syntaxe était requirejse pour nommer les structures. Vous pouvez donc écrire simplement ce qui suit (en omettant les noms typedef et typedef):

 struct name_of_struct
 {
    type1 membre1;
    membre type2;
    // ...
    typeN membreN;
 };

Et oui, vous pouvez utiliser des commentaires sur une seule ligne (“// …”) dans la norme actuelle de C.

J’utilise les conventions de dénomination utilisées dans les interfaces C et les implémentations de Dave Hanson: un type porte le nom du module et un T. majuscule. Par exemple, le type de séquence est Seq_T et le type de table de hachage est Table_T . Dans la mise en œuvre d’un module, Hanson utilise #define pour abréger juste en T Il s’agit essentiellement des conventions Modula-3 appliquées à la programmation en C, mais j’aperçois qu’après un bref choc initial, cela fonctionne bien.