#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/time.h>
#include <signal.h>
#include <sys/types.h>
#pragma pack (1)
struct data
{
int i;
int j;
int k;
char c;
};
#pragma pack ()
#pragma pack (4)
struct data2
{
int i;
int j;
int k;
char c;
};
#pragma pack ()
struct data3
{
int i;
int j;
int k;
char c;
} __attribute__((aligned(4)));
struct data4
{
int i;
int j;
int k;
char c;
}__attribute__((packed));
int main()
{
struct data dat;
struct data2 dat2;
struct data3 dat3;
struct data4 dat4;
int datt = sizeof(dat);
printf("sizeof(dat) = %d\n", sizeof(dat));
printf("sizeof(dat2) = %d\n", sizeof(dat2));
printf("sizeof(dat3) = %d\n", sizeof(dat3));
printf("sizeof(dat4) = %d\n", sizeof(dat4));
return 0;
}