Note that for non-ANSI C programs, stdio.h includes stdarg.h which defines macros that stdio.h wasn't supposed to define.