#include <stdio.h> int main(){ { int i=0; printf("%d\n",i);//0 { int i=1; printf("%d\n",i);//1 } } }
C #include <stdio.h> int main(){ { static int i=0; printf("%d\n",i);//0 } printf("%d\n",i);//error: ‘i’ undeclared (first use in this function) }
C main.c #include <stdio.h> int i; int main(){return 0;}; test.c #include <stdio.h> int i=0; gcc -c main.c test.c //success gcc -o main main.o test.o //multiple definination of "i" main.c修改: #include <stdio.h> extern int i;//經過使用extern將該全局變量聲明爲外部連接屬性,使用外部定義的變量。 int main(){return 0;} gcc -o main main.o test.o //success
C main.c #include <stdio.h> extern int printHello();//僅指明該函數是在外部函數中聲明定義。 int main(){ printHello(); return 0; } test.c #include <stdio.h> int printHello(){ printf("hello\n"); return 0; }