/tmp>cat evil.c #include #include typedef int (*func_returning_int)(void); typedef void (*func_returning_void)(void); void dummy(void) { puts("Hello World"); } int main(int argc, char ** argv) { func_returning_void f = &dummy; int i = 0; f(); i = ((func_returning_int)f)(); printf("i=%i\n",i); return 0; } /tmp>CFLAGS="-Wall -pedantic" make evil cc -Wall -pedantic evil.c -o evil /tmp>./evil Hello World Hello World i=12 /tmp>