Fundamental types| Type | Size | Alignment | | char | 1 | 1 | | short | 2 | 2 | | int | 4 | 4 | | long | 4 | 4 | | long long | 8 | 8 | | void* | 4 | 4 | | void(*)() | 4 | 4 | | float | 4 | 4 | | double | 8 | 8 | | long double | 8 | 8 |
size_t Size 4 Alignment 4
va_listSize 16 Alignment 4 Passed by reference
X86-32 and ARM:struct __va_list_tag {
void *ptr;
void *padding1;
void *padding2;
void *padding3;
};
typedef struct __va_list_tag valist[1];
X86-64:
struct __va_list_tag {
unsigned gp_offset;
unsigned fp_offset;
void *overflow_arg_area;
void *reg_save_area;
};
typedef struct __va_list_tag valist[1];
jmp_bufTODO
|