RE: SIZEOF_LONG 4 instead of 8 in 64-bits

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

 




-----Original Message-----
From: gcc-help-owner@xxxxxxxxxxx [mailto:gcc-help-owner@xxxxxxxxxxx] On Behalf Of Tim Prince
Sent: Tuesday 18 May 2010 13:55
To: gcc-help@xxxxxxxxxxx
Subject: Re: SIZEOF_LONG 4 instead of 8 in 64-bits

On 5/18/2010 10:50 AM, Ian Lance Taylor wrote:
> Kraiser<pietiatibia1@xxxxxxxxx>  writes:
>
>    
>> I need to use #define __SIZEOF_LONG__ 4 instead of #define __SIZEOF_LONG__ 8
>> in amd64 so my program will not double the memory usage how Can i do so?
>> using debian and gcc 4.4.4
>>      
> No, there is no support for that.  Sorry.
>
> Perhaps you could compile with -Dlong=int.  Wouldn't work if you ever
> use the long long type, though.
>
> Ian
>    
or correct your program to use int32_t if that is your intention

-- 
Tim Prince



I have not been following this discussion since the beginning and so I don't know if it is applicable here but I use a little template metaprogram to establish an alias for an integer with a size equal to machine address width when I need such a thing.  It comes out a bit like size_t or ssize_t without the need to cast.  It would be just as easy to do the same for a 32-bit integer.

The advantage of this approach is that you are never dependent on things like int_32 or variants thereof which may or may not be defined for any particular platform.  So long as one of the C/C++ integer types has the desired size, you get what you want.



[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