On Sat, May 5, 2012 at 10:58 PM, Joel C. Salomon <joelcsalomon@gmail.com> wrote:
On 05/05/2012 05:06 PM, Comeau At9Fans wrote:
> On Sat, May 5, 2012 at 1:48 PM, Charles Forsyth wrote:
>
>     if it's performance you're worried about, for programs that don't
>     care about width, i'd expect 32 bits at least
>     to match performance with 64 bits (if there's a measurable
>     difference). for one thing, cache lines will contain
>     more values, and several will be fetched at once when cache lines
>     are filled.
>
> And for programs that do care about this, C99 provides things such as
> int_fast64_t (which IIRC 8c et al does not currently support).

<stdint.h> is just a bunch of typedef's, some of which have been
included, under different names (u{8,16,32,64}int), in <u.h>.  Wouldn't
be hard to provide for APE if anyone wants it.

Yes, the u{...}int names are important.  Those "different names" are normally for other (though obviously related) purposes (conceptually int_exact_*), and the int_least_* and int_fast_* names, usually are built from the exact ones.  BTW, more generally re the greater issue raised earlier by an OP, if ones intent is X bits, then int is not expressing that intent, and even if your assumption happens to be correct, it might also create a portability faux pas if that is a concern.  Also, if int was X bits underneath, then arrays of int, now in the case of X == 64 effectively become arrays of long stuff since not only is there now maybe wasted memory, but cache management and such can be a concern.  This all has architecture dependencies though.

--
Greg Comeau / 4.3.10.1 with C++0xisms now in beta!
Comeau C/C++ ONLINE ==>     http://www.comeaucomputing.com/tryitout
World Class Compilers:  Breathtaking C++, Amazing C99, Fabulous C90.
Comeau C/C++ with Dinkumware's Libraries... Have you tried it?