tech-userlevel archive

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

Re: 64-bit masks

> 1. What is the correct (portable?) way of specifying 64-bit constants?

> If I need a 64-bit constant set to all 1s, will the following work on
> all systems

> unit64_t num = 0xffffffffffffffffULL;

(Well, uint64_t.)  This will work on anything NetBSD runs on.  I'm not
sure whether unsigned long long is guaranteed by C to be at least 64
bits wide.  (Those versions of C that _have_ unsigned long long, that
is; it's a relatively recent addition to the language.)

You might want to write ~0ULL instead; it's smaller and somewhat
clearer.  (Just looking at what you wrote, I have to count characters
to tell you didn't write 0xfffffffffffffffULL instead, for example.)

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML      
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Home | Main Index | Thread Index | Old Index