Re: Fastest minimum-width integer types and limits macros

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 30/09/2011 08:05, Gunther Nikl wrote:
Ian Lance Taylor schrieb:
Gunther Nikl<gnikl@xxxxxxxxxxxxxxxxxxxxx>  writes:

Is there a special requirement about the value of the limits
macros for fastest minimum-width integers? Eg. would it be legal
to use the limits of a a "signed char" if int_fast8_t is defined
in terms of an int? Or is it required to use the proper limit of
int?

I don't understand what you mean.  Can you show us some example code
that you are uncertain about?

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


You mean "#define INT_FAST8_MIN INT_MIN" in this case - you would only use "INT32_MIN" if you had "typedef int32_t int_fast8_t". If you are going to write your own <stdint.h>, try to be accurate - otherwise you'll end up with something that looks standard and portable, but is not quite correct and will cause problems if it is reused on other platforms.

I believe it is standard practice that INT_FAST8_MIN and similar limits match those of the underlying type, even though it would be legal to make it smaller. Similarly with INT_LEAST8_MIN. That seems to be the case on the various compilers I have lying around.



in that case?

So this is not about user code but an implementation question.

Thank you,
Gunther Nikl






[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux