Disons que ça dépend de ce que tu veux rendre constant. Trois solutions possibles :
1) Seul l'objet pointé doit être constant (= en lecture seule) :
void proc3(struct type_struct const * ma_struct);
Cette écriture autorise à modifier le pointeur.
2) Seul le pointeur doit être constant :
void proc3(struct type_struct * const ma_struct);
Cette écriture autorise à modifier les membres de la structure.
3) Le pointeur et l'objet pointé doivent être constants tous les deux :
void proc3(struct type_struct const * const ma_struct);
============
D'une manière générale, const rend constant ce qui se trouve juste avant lui.
S'il se trouve au tout début (ce qui est autorisé), il a la même signification que s'il se trouvait juste après le type. Exemple :
void proc3(const struct type_struct * ma_struct);
correspond à la même chose que :
void proc3(struct type_struct const * ma_struct);
Partager