getc () vs fgetc () - Was sind die Hauptunterschiede?

Überall sehe ich "es ist praktisch identisch" oder ähnliches ...

VonDas GNU C-Programmier-Tutorial :

Es gibt eine weitere Funktion in der GNU C Library, die fgetc heißt. Es ist in den meisten Punkten identisch mit getc, mit der Ausnahme, dass getc normalerweise als Makrofunktion implementiert und in hohem Maße optimiert ist. Dies ist in den meisten Situationen vorzuziehen. (In Situationen, in denen Sie von Standardeingaben lesen, ist getc ungefähr so ​​schnell wie fgetc, da Menschen langsam tippen, verglichen mit der Geschwindigkeit, mit der Computer ihre Eingaben lesen können, aber wenn Sie aus einem Stream lesen, der nicht interaktiv von einem Menschen erzeugt wird, fgetc ist wahrscheinlich besser.)

Was sind die anderen Unterschiede? Ich habe gehört, dass sie jeweils eine andere Implementierung haben (und eine kann als Makro verwendet werden), aber was macht sie so unterschiedlich (oder unterschiedlich genug), dass sie beide in der Standard C-Bibliothek (oder in der Spezifikation) enthalten sind?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage