Remove the space between posix
and inttypes.h
(after the comma). The problem goes away.
This answer tells us why this occurs:
From the C99 standard:
A preprocessing directive of the form
# define identifier replacement-list new-line
defines an object-like macro that causes each subsequent instance of the macro name to be replaced by the replacement list of preprocessing tokens that constitute the remainder of the directive.
So macros work on tokens and the whitepace is to be expected.
EDIT:
According to this answer, you can use the traditional-cpp
flag to mimic the old behavior of not adding the space. I am not sure how that will affect your build, but you can try it:
Only much older preprocessors didn't insert that extra space -- note that original entry was submitted over 20 years ago in 1988, before the 1989 version of the C standard was standardized. You can pass the -traditional-cpp flag to the GCC preprocessor, which causes it to imitate the behavior of old-fashioned C preprocessors, as opposed to ISO C preprocessors.