Data Type Storage

For general information about data types, see Section 7.4. Table 8-1 lists register and memory storage for various data types:

Table 8-1 Data Representation in Registers and Memory

Data Type Register Storage Memory Storage
char Bits 0-7 of register 8 bits aligned to 8-bit boundary
unsigned char Bits 0-7 of register 8 bits aligned to 8-bit boundary
short Bits 0-15 of register 16 bits aligned to 16-bit boundary
unsigned short Bits 0-15 of register 16 bits aligned to 16-bit boundary
int Entire register 32 bits aligned to 32-bit boundary
unsigned int Entire register 32 bits aligned to 32-bit boundary
enum (1) Entire register or even/odd register pair 32 bits aligned to 32-bit boundary or 64 bits aligned to 64-bit boundary
float Entire register 32 bits aligned to 32-bit boundary
float complex (4) Even/odd register pair 64 bits aligned to 32-bit boundary
long Entire register 32 bits aligned to 32-bit boundary
unsigned long Entire register 32 bits aligned to 32-bit boundary
__int40_t Even/odd register pair 64 bits aligned to 64-bit boundary
unsigned __int40_t Even/odd register pair 64 bits aligned to 64-bit boundary
long long Even/odd register pair 64 bits aligned to 64-bit boundary
unsigned long long Even/odd register pair 64 bits aligned to 64-bit boundary
double Even/odd register pair 64 bits aligned to 64-bit boundary
double complex (C6600 only)(4) Register quad(5) 128 bits aligned to 64-bit boundary
long double Even/odd register pair 64 bits aligned to 64-bit boundary
long double complex (C6600 only)(4) Register quad(5) 128 bits aligned to 64-bit boundary
__x128_t (C6600 only)(2) Register quad(5) 128-bits aligned to 64-bit boundary
struct Members are stored as their individual types require. Storage is a multiple of the alignment to the boundary of largest member type; members are stored and aligned as their individual types require.
array Members are stored as their individual types require. Members are stored as their individual types require.(3) All arrays inside a structure are aligned according to the type of each element in the array.
pointer to data member Bits 0-31 of register 32 bits aligned to 32-bit boundary
pointer to member function Components stored as their individual types require 32 bits aligned to 32-bit boundary
For details about the size of an enum type, see Section 7.4.1.
For details on the __x128_t container type, see Section 8.6.7.
Static scope arrays are aligned to a 64-bit boundary.
To use complex data types, you must include the <complex.h> header file. See Section 7.5.1 for more about how complex data types are stored.
Register quads are supports for C66000 only.