Getting Started | Documentation | Glish | Learn More | Programming | Contact Us |
![]() | Version 1.9 Build 1367 |
|
To take advantage of large memory machines available at the NCSA we need to move beyond 32-bit pointers because they limit the amount of memory to 1 Gb. Additionally, with a 64bit Linux and the IA64 Intel processor series on the horizon, it behooves us to be fully "64-bit" clean sooner rather than later. AIPS++ already has working 64-bit builds on the Dec Alpha and SGI Origin series using architecture-specific #ifdef macros (e.g. __alpha or _sgi*) to handle the critical 64-bit differences. All 64-bit differences have not been addressed throughout the library, however, and we need to define coding rules and conventions for this purpose. They may be implemented incrementally however.
Here's a table lifted from the "SGI MIPSpro 64-bit Porting and
Transition Guide". It shows how long each of the types are in bits.
Note that longs and pointers have different sizes depending on
compiling using 64- or 32-bit modes.
C type | 32-bit | 64-bit |
char | 8 | 8 |
short int | 16 | 16 |
int | 32 | 32 |
long int | 32 | 64 |
long long int | 64 | 64 |
pointer | 32 | 64 |
float | 32 | 32 |
double | 64 | 64 |
long double | 64 | 128 |