long_int vs int byte sizes

Eric Blake eblake@redhat.com
Mon Apr 7 14:16:00 GMT 2014


On 04/07/2014 02:47 AM, Corinna Vinschen wrote:

> 
> There's no standard which restricts the sizes of the datatypes in
> that way.  There's only this rule to follow:
> 
>   sizeof (char) <= sizeof (short) <= sizeof (int) <= sizeof (long)

Well, there IS the C rule that sizeof(char)==1, and also that char holds
>= 8 bits, short holds >= 8 bits, int holds >= 16 bits, long holds >= 32
bits.  There is also a POSIX rule that CHAR_BITS==8 (so while C allows a
9-bit or 32-bit char [and yes, such machines exist, although rare],
POSIX does not allow that).  But in general, on most modern porting
platforms, 'long' is a redundant type - it will either be equal in size
to 'int' (typical for a 32-bit machine) or to a 'long long' (typical for
a 64-bit machine); it only mattered on 16-bit machines which are now
museum pieces.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://cygwin.com/pipermail/cygwin/attachments/20140407/772ffa2f/attachment.sig>


More information about the Cygwin mailing list