The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
getc vs fgetc, !*! rasmon, 04-Авг-08, 18:50  [смотреть все]
Подскажите разницу между функциями Си: getc и fgetc .
Вот цитата из Кенигана  и Ритчи:
getc делает тоже, что и fgetc, но в отличие от последней, если она - макрос, поток может браться более одного раза.

Я не понимаю фразы "поток может браться более одного раза".
Это почему я не могу "взять поток" больше одного раза? Что имеется ввиду?
Такой же вопрос можно задать относительно функций  putc и fputc.

  • getc vs fgetc, !*! Michelnok, 19:22 , 04-Авг-08 (1)
    • getc vs fgetc, !*! anonymous, 22:34 , 04-Авг-08 (2)
    • getc vs fgetc, !*! rasmon, 17:25 , 06-Авг-08 (3)
      >>getc делает тоже, что и fgetc, но в отличие от последней, если
      >>она - макрос, поток может браться более одного раза.
      >
      >Следует читать не "поток может браться...", а "параметр stream может вычисляться...". Т.е.
      >getc может быть макросом, и если ты в качестве параметра ей
      >укажешь выражение, то это выражение может быть выполнено заранее неизвестное количество
      >раз.
      >Например, неизвестно чему будет равна переменная stream после "вызова" getc(stream++).

      То есть, имеются ввиду всего лишь навсего так называемые "побочные эффекты" использования макросов?
      Также, получается, что, если "не уверен", то используй fgets? )




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру