This table gives the size and natural alignment of the basic data types in ARM C or C++.
Type | Size in bits | Natural alignment in bytes |
---|---|---|
char | 8 | 1 (byte-aligned) |
short | 16 | 2 (halfword-aligned) |
int | 32 | 4 (word-aligned) |
long | 32 | 4 (word-aligned) |
long long | 64 | 8 (doubleword-aligned) |
float | 32 | 4 (word-aligned) |
double | 64 | 8 (doubleword-aligned) |
long double | 64 | 8 (doubleword-aligned) |
All pointers | 32 | 4 (word-aligned) |
bool (C++ only) | 8 | 1 (byte-aligned) |
_Bool (C only[1]) | 8 | 1 (byte-aligned) |
wchar_t (C++ only) | 16 | 2 (halfword-aligned) |
[1] |