Installation guide
These changes, described in the following sections, can affect how a
program accesses and manipulates data.
6.1.1 Data Representation
The DIGITAL UNIX C data types have been modified and extended to
include a 64-bit type. Table 6–1 shows the differences in data types
between the ULTRIX and DIGITAL UNIX environments.
Table 6–1: C Language Data Types
Data Type 32-Bit MIPS or VAX System (Size in
Bits)
64-Bit DIGITAL UNIX
System (Size in Bits)
char
88
short
16 16
int
32 32
long
32 64
long long
Not available 64
float
32 (MIPS: IEEE single
precision)(VAX: F_floating)
32 (IEEE single precision)
double
64 (MIPS: IEEE double
precision)(VAX: G_floating or
D_floating)
64 (IEEE double precision)
pointer
32 64
The major differences are that long is defined to be 64 bits; pointer is
defined to be 64 bits, extending the address space; and long long, a new
data type, is defined to be 64 bits. The long long data type offers the
unique name for a 64-bit data type that might give additional
interoperability between 32-bit and 64-bit systems.
Like the VAX and MIPS systems, the DIGITAL UNIX system uses
right-to-left byte ordering (little endian) for integer types.
6.1.2 Data Access
Unlike the VAX and MIPS architectures, which allowed byte and word
memory accesses, the Alpha architecture supports only memory accesses of
longword (32 bits) or quadword (64 bits). Byte and word accesses are
accomplished by multiple instructions, which load a longword or quadword,
mask, and shift to get the desired entity. The lack of a single operation for
byte and word access might produce incorrect results in cases where you
are accessing adjacent byte or word entities in shared memory segments.
6–2 Overview of the DIGITAL UNIX Programming Environment