two c files: main.c and func.c, excute the command like this: gcc main.c func.c -Wall -ansi -pedantic
there are two warnings, and is can generate binary file and the file can be excuted. //main.c int main() { int a; a = func(); printf("%d\n", a); return a; } //func.c float func(int a, int b) { return (float)(a + b); } I assume it's a bug: func in main funcion is different from the function in func.c My gcc version is gcc 3.2.2. May be not this version, i have forgotten.