/* GCC y la alineación de campos en estructuras
* Ernesto Hernández-Novich <emhn@usb.ve>
* CI3641 Lenguajes de Programación I
*/
#include <stdio.h>
#include <stddef.h>
typedef struct meta {
int foo;
char bar[2];
_Bool baz;
int qux;
double meh;
}
/* __attribute__ ((packed)) */
meta;
#define OFF(t,f) printf("\toffset(%s) = %d\n","f",offsetof(t,f));
void main(int argc,char **argv) {
meta grok;
printf("sizeof(grok) = %d\n", sizeof(grok));
printf("Offsets\n");
OFF(meta,foo);
OFF(meta,bar);
OFF(meta,baz);
OFF(meta,qux);
OFF(meta,meh);
}