@sbi: Je pense que non: peut être faux, mais .. en C++ ce n'est pas une structure anonyme, il y a une règle spéciale appelée "struct hack" qui fait une structure ordinaire taguée avec le nom typedef, donc le nom typedef devient aussi le nom de la classe. Ceci est nécessaire car les fonctions avec liaison externe requièrent également des arguments de type classe pour avoir un lien externe, ce qui implique d'avoir un nom externe. Sans ce hack, seules les fonctions externes "C" pourraient manipuler la structure.
Le seul endroit où vous pouvez utiliser une struct anonyme serait dans une autre structure:
struct X { struct {int a; } b; } x;
x.b.a; // OK
struct X a une liaison externe, même si le type de b est anonyme. Les structures anonymes pourraient être utilisées sur la pile ou dans le stockage statique, mais contrairement aux unions anonymes, cela ne fournirait aucun avantage sur les variables séparées. Je ne suis même pas sûr que C++ permette des structures anonymes.
http://stackoverflow.com/questions/385023/why-do-you-use-typedef-when-declaring-an-enum-in-c – Pratik