第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

求大神!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ù)所處源文件到底是什么意思??有例子可舉更好 謝謝各位

正在回答

2 回答

可能是文件的覆蓋吧,不是粘貼而是覆蓋

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕后端6482527 提問者

不懂。
2018-11-13 回復(fù) 有任何疑惑可以回復(fù)我~

emm......

hello.c是個源文件,#include"test.c"效果想想其實和#include<stdio.h>一樣,那么也就是說引用以后,都是同一個源文件下了,相當(dāng)于復(fù)制粘貼把test.c的東西拷過來。如導(dǎo)師給出的話中所說“限定該函數(shù)只能在其所處的源文件中使用”,那么這個條件在文件的遷移中滿足,所以也就可以在hello.c中使用


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕后端6482527 提問者

那我static豈不是沒用了。
2018-10-27 回復(fù) 有任何疑惑可以回復(fù)我~
#2

CassanBob 回復(fù) 慕后端6482527 提問者

對于static的作用我也很疑惑,所以我也在問其他大佬
2018-10-27 回復(fù) 有任何疑惑可以回復(fù)我~
#3

慕后端6482527 提問者 回復(fù) CassanBob

我丟。。。
2018-10-27 回復(fù) 有任何疑惑可以回復(fù)我~
#4

遺失的美好灬 回復(fù) 慕后端6482527 提問者

我試了好多次,發(fā)現(xiàn)只是為了防止多重定義同名函數(shù),因為編譯器把hello.c和test.c一起執(zhí)行了,兩個文件都有say()函數(shù),結(jié)果報錯了
2018-10-30 回復(fù) 有任何疑惑可以回復(fù)我~
#5

慕后端6482527 提問者 回復(fù) 遺失的美好灬

666
2018-11-13 回復(fù) 有任何疑惑可以回復(fù)我~
#6

慕后端6482527 提問者 回復(fù) 遺失的美好灬

還是不太理解 為什么會重名 我只定義了一次啊
2018-11-13 回復(fù) 有任何疑惑可以回復(fù)我~
查看3條回復(fù)

舉報

0/150
提交
取消
C語言入門
  • 參與學(xué)習(xí)       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

求大神!static的只限定于源文件問題

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號