Ian Lance Taylor wrote: > Gunther Nikl <gnikl@xxxxxxxxxxxxxxxxxxxxx> writes: > >> Here is an example for int_fast8_t: >> >> typedef signed char int_fast8_t; >> #define INT_FAST8_MIN INT8_MIN >> #define INT_FAST8_MAX INT8_MAX >> >> Now if int_fast8_t uses "int" as underlying type like this: >> >> typedef int int_fast8_t; >> >> which value is its MIN/MAX macros supposed to have? Is it >> allowed to use the same "char" limits as above or do I need >> to use >> >> #define INT_FAST8_MIN INT32_MIN >> #define INT_FAST8_MAX INT32_MAX >> >> in that case? >> >> So this is not about user code but an implementation question. > > The value of INT_FAST8_MIN is implementation defined, so you can choose > whatever value you like (as long as it is <= -128). That said, the > standard seems to suggest that the value should correspond to the value > of the underlying type. That is, if int_fast8_t is defined as int, then > the value of INT_FAST8_MIN should be INT_MIN. That at least makes > INT_FAST8_MIN useful, as otherwise it would always simply have the > value -128. Thanks for the information about the standard. FWIW, I assumed that if a fast 8bit type was requested than its only about a 8bit value range and thus the 8bit limits are sufficient. Regards, Gunthr Nikl