/******************************************************************************

                            Online C Compiler.
                Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <stdio.h>
#include <stdint.h>

struct S {
    uint8_t a;
    uint32_t b;
    uint16_t c;
};

#pragma pack(push, 1)
struct Pack {
    uint8_t a;
    uint32_t b;
    uint16_t c;
};
#pragma pack(pop)

int main()
{
    printf("Hello World\n");

    printf("struct size S:%i Pack:%i\n", sizeof(struct S), sizeof(struct Pack));

    char arr[] = {4, 5, 0, 0, 0, 7, 0}; // a == 4, b == 5, c == 7
    struct S* s = (struct S*)arr;
    printf("a:%i, b:%i, c:%i\n", s->a, s->b, s->c);
    
    struct Pack* p = (struct Pack*)arr;
    printf("a:%i, b:%i, c:%i\n", p->a, p->b, p->c);

    return 0;
}
