On 01/02/2017 14:52, Jonathan Wakely wrote: > On 1 February 2017 at 13:49, Mason wrote: >> Hello, >> >> https://gcc.gnu.org/gcc-5/porting_to.html states >> >> "Typically, this macro is used as in the following: >> >> #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L >> /* ... */ >> #else >> # include <stdint.h> >> #endif >> " >> >> I think it is unnecessary to test for the existence of __STDC_VERSION__ >> because N1256 6.10.1p4 states >> "all remaining identifiers [...] are replaced with the pp-number 0" >> >> Therefore >> #if __STDC_VERSION__ < 199901L >> would work as expected, even when __STDC_VERSION__ is undefined. >> (As the constant-expression would be false.) > > But you'd get a warning with -Wundef Right. I'm not convinced by the usefulness of -Wundef, though. I suppose its only use is catching typos such as #define FOO 42 #if GOO #endif which would silently discard the conditional code. Regards.