getc () vs fgetc () - Quais são as principais diferenças?

Em todo lugar eu vejo "é praticamente idêntico", ou algo similar ...

DeO tutorial de programação GNU C :

Existe outra função na biblioteca GNU C chamada fgetc. É idêntico ao getc na maioria dos aspectos, exceto que o getc é geralmente implementado como uma função macro e é altamente otimizado, portanto é preferível na maioria das situações. (Em situações em que você está lendo a entrada padrão, o getc é tão rápido quanto o fgetc, já que os seres humanos digitam lentamente em comparação com a rapidez com que os computadores conseguem ler suas entradas, mas quando você está lendo de um fluxo que não é produzido interativamente por um ser humano, O fgetc é provavelmente melhor.

Quais são as outras diferenças? Ouvi dizer que cada um deles tem uma implementação diferente (e um pode ser usado como uma macro), mas o que os torna diferentes (ou diferentes o suficiente) para que eles sejam ambos na biblioteca (ou especificação) padrão C?

questionAnswers(3)

yourAnswerToTheQuestion