Lecture par caractère : getc

Il existe une fonction getc qui est rigoureusement identique à fgetc (même interface, même sémantique), sauf que getc est implémenté comme une macro et non comme une vraie fonction C. La différence est que getc peut évaluer plusieurs fois son paramètre flot-de-données, ce qui lui interdit d'être une expression contenant des effets de bord.
Exemple :
int i;
FILE * TAB_FILE[10];

c = getc(TAB_FILE[i++]);   /*   Arrgh..., effet de bord !   */



Matthieu Moy 2017-02-08