void printi(int val);

struct sample {
  char c;
  short s;
  int i;
  long l;
  char end;
};

struct sample2 {
  long l;
  int i;
  short s;
  char c;
  char end;
};

struct sample3 {
  short s;
  char c;
  long l;
  int i;

  char c2;
  long l2;
  int i2;
  short s2;

  long l3;
  char c3;
  int i3;
  short s3;

  char end;
};

int main()
{
  printi(sizeof(struct sample));
  /*
  printi((char *)&((struct sample *)0)->end - (char *)0);
   */

  printi(sizeof(struct sample2));
  /*
  printi((char *)&((struct sample2 *)0)->end - (char *)0);
   */

  printi(sizeof(struct sample3));
  /*
  printi((char *)&((struct sample2 *)0)->end - (char *)0);
   */

  return 0;
}
