test.c的源码
#include <stdio.h>
static void say(){
printLine();
printf("I love imooc\n");
printf("good good study!\n");
printf("day day up!\n");
printLine();
}
hello.c的源码
#include <stdio.h>
#include "test.c"
extern void printLine()
{
printf("**************\n");
}
int main()
{
say();
return 0;
}
文中提到 这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。 所以我的say函数加了static之后不应该只能在test.c里面使用吗?为什么还可以在hello.c中使用,函数所处源文件到底是什么意思??有例子可举更好 谢谢各位
可能是文件的覆盖吧,不是粘贴而是覆盖
emm......
hello.c是个源文件,#include"test.c"效果想想其实和#include<stdio.h>一样,那么也就是说引用以后,都是同一个源文件下了,相当于复制粘贴把test.c的东西拷过来。如导师给出的话中所说“限定该函数只能在其所处的源文件中使用”,那么这个条件在文件的迁移中满足,所以也就可以在hello.c中使用