Re: C Integers

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

 




On 05/06/2013 07:11 AM, JimJoyce wrote:

> Am I 'out of date' and 'out of touch'?
> Machines and compilers have grown in size since Ritchie's day
> When I check sizeof(short), sizeof(int) and sizeof(long) on my machine I get
> 2, 2, 4.
> Yet my machine is a 64bit one. Is that its 'natural' size. Should not my int
> be 8 bytes ??
> Should C and C++ compilers be re-defining shorts, ints and longs?

I'm not a compiler guy but I do a lot of low level programming where the
object size is important.

In general, the int, float, etc notation has been displaced by the _t
notation.  That is if you want an 8 bit signed object you declare it

int8_t foo.

A 16 bit unsigned object would be

uint16_t foo

It is the responsibility of the compiler writer to convert these into
the target machine's object sizes.  For example, the ARM GNU C
cross-compiler I'm currently working with, the int8_t is typedef'ed as a
char.

Look in <sys/types.h> for all the typedefs.  This is also discussed in
the GNU C standard library manual.

John


-- 
John DeArmond
Tellico Plains, Occupied TN
http://www.fluxeon.com      <-- THE source for induction heaters
http://www.neon-john.com    <-- email from here
http://www.johndearmond.com <-- Best damned Blog on the net
PGP key: wwwkeys.pgp.net: BCB68D77




[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