The getwc() function is equivalent to fgetwc(3C), 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 interface is provided to align with some current implementations and with possible future ISO standards.
Because it may be implemented as a macro, getwc() may treat incorrectly a stream argument with side effects. In particular, getwc(*f++) may not work as expected. Therefore, use of this function is not recommended; fgetwc(3C) should be used instead.