...
See also undefined behavior 9392.
This rule also applies to the use of preprocessor directives in arguments to any function where it is unknown whether or not the function is implemented using a macro. This includes all standard library functions, such as memcpy()
, printf()
, and assert()
, because any standard library function may be implemented as a macro. (C24, 7.1.4, paragraph 1).
...