The getc macro returns the next byte from the input stream
specified by the file_ptr parameter and moves the file pointer,
if defined, ahead one byte in the input stream.
Since getc is a macro, a file pointer argument with side effects
(for example, getc (*f++)) might be evaluated incorrectly.
In such a case, use the fgetc function instead. See the fgetc
function.
See also getc_unlocked.