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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

發(fā)現(xiàn)吧test.c中函數(shù)改為static就行了,為什么被引用的必須是static類型?

被引用的需被限定?

正在回答

3 回答

注意到第二個(gè)源文件也就是test.c【后面將用T代替】調(diào)用了第一個(gè)源文件hello.c【后面將用H代替】中的函數(shù),因此我們先將H中被T調(diào)用的函數(shù)printLine()修改為外部函數(shù)也就是加上一個(gè)extern,這樣T也就是一個(gè)正常的源文件了。? ?現(xiàn)在討論兩種情況:

A。當(dāng)我們把T編譯為靜態(tài)函數(shù)的時(shí)候——static say()? ?,我們在H若要使用T的這個(gè)靜態(tài)函數(shù),這需要將他調(diào)用過來,而一個(gè)靜態(tài)函數(shù)是無法直接調(diào)用的,此時(shí)我們需要先引入say()函數(shù)所在的源文件,也就是H中的第二行代碼的用意。? ? ?

B。當(dāng)我們把T編譯為動(dòng)態(tài)函數(shù)的時(shí)候——say()或者extern say()【因?yàn)閑xtern可以省略】,我們?nèi)粢贖中使用T的這個(gè)函數(shù)say()那么我們可以直接調(diào)用,因?yàn)閟ay()是一個(gè)外部函數(shù),無需引入其所在的源文件T也就是不需要H的第二行,因此會(huì)有人說“只要把第二行注釋掉就行了”其實(shí)這句話的前提是say()是一個(gè)外部函數(shù)。


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

這里的static是對函數(shù)的作用范圍的一個(gè)限定,限定該函數(shù)只能在其所處的源文件中使用,因此在不同文件中出現(xiàn)相同的函數(shù)名稱的內(nèi)部函數(shù)是沒有問題的

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

靜態(tài)的? ?static



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

慕神6282746

因?yàn)閔ello.c中已經(jīng)包含了test.c文件,可以直接用里面的函數(shù),如果不加static的話,正如導(dǎo)師說的,say()函數(shù)就被默認(rèn)為是extern類型的,那么既包含了test.c文件,又調(diào)用了say()函數(shù),就等于重復(fù)調(diào)用了,所以會(huì)報(bào)錯(cuò)。你嘗試一下,吧hello.c中的#include“test.c”去掉,在test.c中函數(shù)改為extern類型的,你會(huì)發(fā)現(xiàn)能夠正常輸出
2019-01-18 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕娘0415944 回復(fù) 慕神6282746

6666
2019-01-22 回復(fù) 有任何疑惑可以回復(fù)我~
#3

qq_慕斯2176059 回復(fù) 慕神6282746

原來如此!
2019-01-24 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

發(fā)現(xiàn)吧test.c中函數(shù)改為static就行了,為什么被引用的必須是static類型?

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

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

幫助反饋 APP下載

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

公眾號

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