What is the purpose of this block in stdint.h (from newlib)?
#if defined(__GNUC__) && \
( (__GNUC__ >= 4) || \
( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2) ) )
/* gcc > 3.2 implicitly defines the values we are interested */
#define __STDINT_EXP(x) __##x##__
This macro is used later in the header for integer comparison but I’m not sure how it is supposed to evaluate. For example:
#if __STDINT_EXP(LONG_MAX) > 0x7fffffff
##is the cpp (C Preprocessor) operator to concatenate tokens, ie.evaluates to
in the first step.