Avoid Passing Arguments With Side Effects to C Runtime Library Functions
Many of the C Runtime Library functions are in fact macros in disguise. < stdlib.h> routines, memset(), strcpy() and others are often implemented as macros that perform some low-level system