Re: Typedefs / gcc / HIGHMEM

H. Peter Anvin (hpa@zytor.com)
Sat, 08 Dec 2001 16:41:56 -0800


Stephan von Krawczynski wrote:

>>
>>Why should there be? The u32 value gets promoted to u64 before the
>>comparison is done.
>>
>
> Yes, ok, you're right. This was not a well thought out statement.
> Anyway the problem with printf statement stays. It is obviously
> confused by a unsigned long long and "%08x". How would you fix this?
> Downcasting to u32?
>

Either that or change it to %016llx or something like that.

>
> Ha, I always wondered what this u64 is all about :-)
> Honestly, this whole datatyping is gone completely mad since the 16-32
> bit change. In my opinion
> byte is 8 bit
> short is 16 bit
> long is 32 bit
> <callwhatyouwant> is 64 bit (I propose long2 for expression of bitsize
> long * 2).
> <callwhatyouwant2> is 128 bit (Ha, right I would call it long4)
>

Well, you're wrong.


> How do you call a 64 bit datatype in a 128 bit environment? According
> to your / the worlds current terminology long will then be 128 bit and
> int will (ridiculously) still be 32 bit. It will be pretty interesting
> to hear people talking about integer registers and people writing
> portable applications do #define int long ... A wait this will break
> your #typedef unsigned int u32 story :-)

int64_t. See the C99 standard.

-hpa

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/