#include <ccan/container_of/container_of.h>#include <stdlib.h>struct foo {int a;char b;};intmain(int argc,char*argv[]){struct foo foo = { .a =1, .b =2};int*intp = &foo.a;char*p;#ifdef FAIL/* p is a char *, but this gives a struct foo * */
p =container_of(intp,struct foo, a);#else
p = (char*)intp;#endifreturn p == NULL;}