1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
   | struct a {
  int x;
};
 
struct a var1; /* correct en C et C++ */
a var2; /* correct en C++, incorrect normalement en C */
 
typedef struct b {
  int x;
} b;
 
struct b var3; /* correct en C et C++ : accès à la structure */
b var4; /* correct en C et C++ : accès au type */
 
/* Attention !! Certaines personnes font le code horrible suivant, dans lequel struct c != c !!! */
/* Même si c'est possible, utiliser cette forme est très fortement déconseillé !!! */
 
typedef struct c {
  int x;
} * c;
 
struct c var5; /* C et C++: définit var5 comme une structure */
c var6; /* C et C++ : définit var6 comme un pointeur vers unes structure */ |