On 2006-07-03 20:06, Mike Meyer <[EMAIL PROTECTED]> wrote: > In <[EMAIL PROTECTED]>, James Bailie <[EMAIL PROTECTED]> typed: > > Randall Hyde wrote: > > > This kind of gives me the impression that "getc" is defined a bit > > > differently under FreeBSD than other environments? Any ideas? > > Yes. It's defined as a macro. > > Linux says that getc "may be implemented as a macro". Anything that > needs a function should be using fgetc, not getc. But
The C99 standard (actually the latest public draft[1]) allows getc() to be a macro: [1] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf from http://www.open-std.org/jtc1/sc22/wg14/www/standards | ยง7.19.7.5 The getc function | | Synopsis | | 1 #include <stdio.h> | int getc(FILE *stream); | | Description | | 2 The getc function is equivalent to fgetc, except that if it is | implemented as a macro, it may evaluate stream more than once, | so the argument should never be an expression with side | effects. This means one shouldn't depend on getc() being a function. _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"