main.c
#include <stdio.h>
int main() {
extern int a;
printf("hello world\n");printf("%d",10); //10
printf("%d",a); //0
printf("%d",hello()); //10}
static.c
int a;
int hello(){
return 10;
}
gcc -o main main.c static.c
./main
main函数对于static.c中的代码可见,因为在static.c中,a定义在函数外面,则为全局变量,而C中函数本身就是一种全局性质的定义,在main中可以访问,因此整个能够编译和执行。
而使用了static修饰的函数 或者 变量则其作用域或者说可见性只能在本文件中,因此其他文件中可以定义同名的函数,