[Zlib-devel] crc32 big/little endian
Vincent Torri
vtorri at univ-evry.fr
Thu Apr 22 03:24:53 EDT 2010
On Thu, 22 Apr 2010, Mark Adler wrote:
> On Apr 21, 2010, at 11:53 PM, Vincent Torri wrote:
>> C ANSI (C89) specifies:
>>
>> sizeof(char) = 1
>>
>> sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
>>
>> and no change with signed or unsigned
>>
>> that's all.
>
> No, that's not all. Minimum sizes are specified in C89. See below: "Their implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown". Also K&R 2nd edition (the ANSI C edition) says basically the same thing: "longs are at least 32 bits".
ha right:
http://c-faq.com/decl/inttypes.html
Vincent Torri
>
> I can't find my K&R 1st edition to see what it says about that.
>
> In any case the constraints are bits(char) <= bits(short) <= bits(int) <= bits(long), 8 <= bits(char), 16 <= bits(short), and 32 <= bits(long). zlib makes only those assumptions about char, short, int, and long (and their unsigned counterparts).
>
> Mark
>
>
>
> 2.2.4.2 Numerical limits
>
> A conforming implementation shall document all the limits specified
> in this section, which shall be specified in the headers <limits.h>
> and <float.h> .
>
> "Sizes of integral types <limits.h>"
>
> The values given below shall be replaced by constant expressions
> suitable for use in #if preprocessing directives. Their
> implementation-defined values shall be equal or greater in magnitude
> (absolute value) to those shown, with the same sign.
>
> * maximum number of bits for smallest object that is not a bit-field (byte)
> CHAR_BIT 8
>
> * minimum value for an object of type signed char
> SCHAR_MIN -127
>
> * maximum value for an object of type signed char
> SCHAR_MAX +127
>
> * maximum value for an object of type unsigned char
> UCHAR_MAX 255
>
> * minimum value for an object of type char
> CHAR_MIN see below
>
> * maximum value for an object of type char
> CHAR_MAX see below
>
> * maximum number of bytes in a multibyte character, for any supported locale
> MB_LEN_MAX 1
>
> * minimum value for an object of type short int
> SHRT_MIN -32767
>
> * maximum value for an object of type short int
> SHRT_MAX +32767
>
> * maximum value for an object of type unsigned short int
> USHRT_MAX 65535
>
> * minimum value for an object of type int
> INT_MIN -32767
>
> * maximum value for an object of type int
> INT_MAX +32767
>
> * maximum value for an object of type unsigned int
> UINT_MAX 65535
>
> * minimum value for an object of type long int
> LONG_MIN -2147483647
>
> * maximum value for an object of type long int
> LONG_MAX +2147483647
>
> * maximum value for an object of type unsigned long int
> ULONG_MAX 4294967295
>
>
>
> _______________________________________________
> Zlib-devel mailing list
> Zlib-devel at madler.net
> http://mail.madler.net/mailman/listinfo/zlib-devel_madler.net
>
>
More information about the Zlib-devel
mailing list