Moi non plusEnvoyé par Ti-R
Par contre :
Là oui !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #define PINT int * void f(void) { PINT pInt, tab; }
Moi non plusEnvoyé par Ti-R
Par contre :
Là oui !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #define PINT int * void f(void) { PINT pInt, tab; }
Mon premier exemple, avec le #define, déclare pInt en const int * (pointeur vers un int constant).
Mon second exemple, avec le typedef, déclare pInt en int * const (pointeur constant vers un int).
Bien sûr, si on prend en permanence le réflexe de mettre const après le type, le problème est contourné. Mais vu que c'est loin d'être la tendance des débutants...
PS: Bien joué gege2061, le problème est encore plus apparent sur ton exemple.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
![]()
Sympa les révisions !
Je mettrai par écrit 1000 fois,
typedef est mieux que #define
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for(int i=1000;i--;) printf("typedef est mieux que #define");![]()
Envoyé par Ti-R
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("typedef est mieux que #define\n");
Partager