#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
typedef struct {
char a;
int b;
short c;
} MyStruct;
void print_offsets() {
MyStruct myStructure;
uintptr_t base_address = (uintptr_t)&myStructure;
uintptr_t a_address = (uintptr_t)&myStructure.a - (uintptr_t)base_address;
uintptr_t b_address = (uintptr_t)&myStructure.b - (uintptr_t)base_address;
uintptr_t c_address = (uintptr_t)&myStructure.c - (uintptr_t)base_address;
printf("Offset of a: %" PRIuPTR "\n", a_address);
printf("Offset of b: %" PRIuPTR "\n", b_address);
printf("Offset of c: %" PRIuPTR "\n", c_address);
printf("Size: %" PRIuPTR, a_address + b_address + c_address);
}
int main() {
print_offsets();
return 0;
}