getc () и fgetc () - Каковы основные различия?

Везде я вижу "это практически идентично", или что-то подобное ...

ИзРуководство по программированию GNU C :

В библиотеке GNU C есть еще одна функция fgetc. В большинстве случаев он идентичен getc, за исключением того, что getc обычно реализован как макро-функция и высоко оптимизирован, поэтому предпочтителен в большинстве ситуаций. (В ситуациях, когда вы читаете со стандартного ввода, getc работает примерно так же быстро, как fgetc, поскольку люди печатают медленно по сравнению с тем, насколько быстро компьютеры могут читать их ввод, но когда вы читаете из потока, который не создается человеком в интерактивном режиме, Fgetc, вероятно, лучше.)

Каковы другие различия? Я слышал, что каждый из них имеет свою реализацию (и одну можно использовать в качестве макроса), но что делает их настолько разными (или достаточно разными), чтобы они были в стандартной библиотеке C (или в спецификации)?

Ответы на вопрос(3)

Ваш ответ на вопрос