//6.2.7 Compatible type and composite type //c2011-6-2-7-ex.c //(c)kaizen@gifu-u.ac.jp #include int f(int (*)(), double (*)[3]); int f(int (*)(char *), double (*)[]); // int f(int (*)(char *), double (*)[3]); int a(char *s){ static int i[2]; i[0]= (int) s; return i; } int f(int *a(char *), double *g[3]){ int i; char * s="char*"; i= *a(s)*((int)g[0][0]); return i; } int main(void){ char * s; double b[3][3]={{2.2,0.0,0.0},{3.2,0.0,0.0},{4.4,0.0,0.0}}; return printf("%d",f(a(s),b)); } //2 warnings generated. //Undefined symbols for architecture x86_64: // "_f", referenced from: // _main in c2011-6-2-7-ex-LltUNt.o //ld: symbol(s) not found for architecture x86_64 //clang: error: linker command failed with exit code 1 (use -v to see invocation)