静态变量跟全局变量都存放在静态存储区,在程序编译的时候就进行初始化,所以f()可以直接调用a。
主函数的文件里 并没有包含类似 #include "tops.c",但是包含了#include "hello.h",这样就包含了void f()的声明,可以直接调用f()函数。
tops.c里的f()函数并没有staic限制,所以可以在hello.h中对它进行声明。这样别的.c文件要调用tops.c里的函数,只需要包含它的声明文件hello.h就可以了。
tops.c最好是跟hello.h名字统一下,比如把hello.h改为tops.h这样就更容易理解了。