求大神!static的只限定于源文件問題
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是對函數(shù)的作用范圍的一個限定,限定該函數(shù)只能在其所處的源文件中使用,因此在不同文件中出現(xiàn)相同的函數(shù)名稱的內(nèi)部函數(shù)是沒有問題的。 ??所以我的say函數(shù)加了static之后不應(yīng)該只能在test.c里面使用嗎?為什么還可以在hello.c中使用,函數(shù)所處源文件到底是什么意思??有例子可舉更好 謝謝各位
2018-11-13
可能是文件的覆蓋吧,不是粘貼而是覆蓋
2018-10-27
emm......
hello.c是個源文件,#include"test.c"效果想想其實和#include<stdio.h>一樣,那么也就是說引用以后,都是同一個源文件下了,相當(dāng)于復(fù)制粘貼把test.c的東西拷過來。如導(dǎo)師給出的話中所說“限定該函數(shù)只能在其所處的源文件中使用”,那么這個條件在文件的遷移中滿足,所以也就可以在hello.c中使用