Next:

12.3 Preprocessor Arithmetic ============================ In C99, preprocessor arithmetic, used for `#if' expressions, must be evaluated as if all signed values are of type `intmax_t' and all unsigned values of type `uintmax_t'. Many compilers are buggy in this area, though. For example, as of 2007, Sun C mishandles `#if LLONG_MIN < 0' on a platform with 32-bit `long int' and 64-bit `long long int'. Also, some older preprocessors mishandle constants ending in `LL'. To work around these problems, you can compute the value of expressions like `LONG_MAX < LLONG_MAX' at `configure'-time rather than at `#if'-time.