В языках C и С++ функции getc и fgetc делают одно и то же: читают из указанного потока очередной символ. Однако в виду того, что getc может быть реализована в виде макроса, мы получаем следующие особенности использования указанных выше функций (см. "Advanced Programming in the UNIX Environment, 3rd Edition", стр. 151):
- Аргумент функции getc не может быть выражением с побочным эффектом.
- Т. к. fgetc гарантированно является функцией, то мы можем взять её адрес и передать его в качестве параметра другой функции.
- Вызов функции fgetc возможно занимает больше времени, чем вызов getc, т. к. обычно вызов функции занимает больше времени, чем вызов макроса.
Комментариев нет:
Отправить комментарий