msalem@ieng9:~$ less test2.c #include int add(int x) { int y = 0; printf("x = %d, y = %d\n", x, y); return x + y; } int main() { char x[] = "\0\0\0\1\0\0\0\1"; int (*ptr)(double y) = (int(*)(double y))add; printf("%d\n", (*ptr)(*(double*)x)); return 0; } msalem@ieng9:~$ gcc -o test2 test2.c msalem@ieng9:~$ ./test2 x = 1, y = 0 1