4.2.5 Différences entre les structures en C et en C++

Comme nous venons de le voir, une structure se déclare comme ceci en C++ :

1
2
3
4
5
struct Brique{
	double longueur;
	double largeur;
	double hauteur;
};

Mais une structure se déclare comme ceci en C :

1
2
3
4
5
6
struct BriqueStruct{
	double longueur;
	double largeur;
	double hauteur;
};
typedef struct BriqueStruct Brique;

Et pour gagner du temps on fait généralement comme ceci :

1
2
3
4
5
typedef struct BriqueStruct{
	double longueur;
	double largeur;
	double hauteur;
} Brique;

Ça ne change pas grand chose.

Oui, mais suffisamment pour que ça de compile pas. En fait, une structure en C n'est pas un type, et il faut utiliser le mot clé typedef pour en faire un type.