PDA

Visualizza la versione completa : Differenza tra getc() e fgetc() ?


Ghemon-a
27-12-2011, 17:29
Salve a tutti, mi sapreste dire che differenza c' tra le funzioni fgetc()/getc(), fputc()/putc()... ?

oregon
27-12-2011, 17:45
Basta leggere la documentazione

"fgetc and getc are equivalent, except that the latter one may be implemented as a macro."

e anche

"getc is equivalent to fgetc and also expects a stream as parameter, but getc may be implemented as a macro, so the argument passed to it should not be an expression with potential side effects."

Ghemon-a
27-12-2011, 18:22
Originariamente inviato da oregon
Basta leggere la documentazione

"fgetc and getc are equivalent, except that the latter one may be implemented as a macro."

e anche

"getc is equivalent to fgetc and also expects a stream as parameter, but getc may be implemented as a macro, so the argument passed to it should not be an expression with potential side effects."

Cosa si intende per " ...be implemented as a macro" ?

MItaly
27-12-2011, 19:18
Vuol dire esattamente quello che c' scritto: getc potrebbe essere implementata come una macro, per cui pu essere che nell'espanderla l'argomento dello stream passato possa essere valutato pi volte. In ogni caso era un'ottimizzazione che aveva senso 20 anni fa, attualmente non credo che nessuno (sui compilatori "mainstream") implementi pi getc come macro, il compilatore dovrebbe essere abbastanza furbo da effettuare l'inlining per i fatti suoi se necessario.

alka
28-12-2011, 09:41
Originariamente inviato da Ghemon-a
Salve a tutti, mi sapreste dire che differenza c' tra le funzioni fgetc()/getc(), fputc()/putc()... ?

La risposta a questa domanda la trovi rapidamente leggendo la documentazione oppure facendo una semplice ricerca su Google (http://www.google.com).

Non necessario aprire una discussione nel forum per questo tipo di quesiti la cui risposta pubblicamente e immediatamente disponibile.

Loading