prog.c:3:42: error: size of array 'static_assertion___LINE__' is negative
#define STATIC_ASSERT(COND) typedef char static_assertion_##__LINE__[(COND) ? 1 : -1]
^
prog.c:4:38: note: in expansion of macro 'STATIC_ASSERT'
#define ENSURE_SIZE(structure, size) STATIC_ASSERT(sizeof(structure) == size)
^
prog.c:11:1: note: in expansion of macro 'ENSURE_SIZE'
ENSURE_SIZE(foo, sizeof(unsigned));
^
prog.c: In function 'main':
prog.c:16:9: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'unsigned int *' [-Wformat=]
printf("address local_a: %X, f->a: %X\n", &local_a, &f->a);
^
prog.c:16:9: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'unsigned int *' [-Wformat=]