typedef void (*ft1)(int x, void** pp); typedef void (*ft2)(int x, unsigned int** pp); static void bah(int x, unsigned int** pp) { ; } int main() { ft1 foo; foo = bah; return 0; } ------ $ gcc fptest.c -o fptest fptest.c: In function ‘main’: fptest.c:8: warning: assignment from incompatible pointer type