Bonjour,

je suis tombe sur un bout de code dont je ne comprends pas l'interet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#define MYFREE(x) do{if((x)) free((x));}while(0)
je m'interroge sur l'utilisation du do while.
apres avoir fait des recherches, j'ai retrouve a plusieurs reprises cet utilisation du "do while" dans la definition d'une macro, mais je n'en comprends pas le sens

pourquoi ne pas simplement ecrire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#define MYFREE(x) if(x){free(x);}
le resultat serait le meme avec une instruction en moins non?