All data items are held in the native byte order of the AVR processor. The plain character type is signed by default. The floating-point types float and double are implemented as 32-bit and 64-bit IEEE floating-point.

Data Type | Size in bytes | Alignment in bytes
char | 1 | 1
unsigned char | 1 | 1
int | 2 | 1
unsigned int | 2 | 1
short | 2 | 1
unsigned short | 2 | 1
long | 4 | 1
unsigned long | 4 | 1
long long | 8 | 1
unsigned long long | 8 | 1
float | 4 | 1
double (compiled with -msd) | 4 | 1
double | 8 | 1
long double | 8 | 1
type * (pointer) | 2 | 1
enum (enumeration) | 2 | 1