(autoconf.info)Preprocessor Arithmetic


Next: Null Pointers Prev: Integer Overflow Up: Portable C and C++

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.


automatically generated by info2www