課程
/后端開(kāi)發(fā)
/C
/C語(yǔ)言入門(mén)
求大神解釋。
2019-01-23
源自:C語(yǔ)言入門(mén) 5-13
正在回答
首先要明確,引用另一個(gè)文件test.c和調(diào)用say函數(shù)可以達(dá)到同一個(gè)目的。但是像原題又引用文件,同時(shí)又調(diào)用test內(nèi)部的say函數(shù)(默認(rèn)是外部函數(shù)),則會(huì)重新,出錯(cuò)。因此正確做法可以是:1.只調(diào)用外部文件,同時(shí)將test函數(shù)內(nèi)部的say函數(shù)改為static類(lèi)型。2.直接將調(diào)用函數(shù)命令注釋掉即可,默認(rèn)say是外部函數(shù),直接調(diào)用。
禮X 提問(wèn)者
請(qǐng)問(wèn)是這個(gè)意思嗎?
注意到第二個(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()? ?,我們?cè)贖若要使用T的這個(gè)靜態(tài)函數(shù),這需要將他調(diào)用過(guò)來(lái),而一個(gè)靜態(tài)函數(shù)是無(wú)法直接調(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ù),無(wú)需引入其所在的源文件T也就是不需要H的第二行,因此會(huì)有人說(shuō)“只要把第二行注釋掉就行了”其實(shí)這句話(huà)的前提是say()是一個(gè)外部函數(shù)。
首先要明確,引用另一個(gè)文件test.c和調(diào)用say函數(shù)可以達(dá)到同一個(gè)目的。但是像原題又引用文件,同時(shí)又調(diào)用test內(nèi)部的say函數(shù)(默認(rèn)是外部函數(shù)),則會(huì)重復(fù),出錯(cuò)。因此正確做法可以是:1.只調(diào)用外部文件,同時(shí)將test文件內(nèi)部的say函數(shù)改為static類(lèi)型。2.直接將調(diào)用文件命令注釋掉即可,默認(rèn)say是外部函數(shù),直接調(diào)用。
舉報(bào)
C語(yǔ)言入門(mén)視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言
2 回答為什么刪掉第一個(gè)自定義程序可以運(yùn)行 而刪掉第二個(gè)卻不能呢?
3 回答為什么a要引號(hào),而后面的c不用
2 回答為什么這些代碼在Xcode運(yùn)行不起來(lái), 而把== 換成=卻可以?
1 回答為什么第二行引用文件刪掉就可以運(yùn)行成功了,那不是就變成了正常的函數(shù)調(diào)用了嗎?
2 回答第五行sum=0有什么用?刪除不是也可以運(yùn)行
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2019-01-24
首先要明確,引用另一個(gè)文件test.c和調(diào)用say函數(shù)可以達(dá)到同一個(gè)目的。但是像原題又引用文件,同時(shí)又調(diào)用test內(nèi)部的say函數(shù)(默認(rèn)是外部函數(shù)),則會(huì)重新,出錯(cuò)。因此正確做法可以是:1.只調(diào)用外部文件,同時(shí)將test函數(shù)內(nèi)部的say函數(shù)改為static類(lèi)型。2.直接將調(diào)用函數(shù)命令注釋掉即可,默認(rèn)say是外部函數(shù),直接調(diào)用。
2019-02-21
請(qǐng)問(wèn)是這個(gè)意思嗎?
注意到第二個(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()? ?,我們?cè)贖若要使用T的這個(gè)靜態(tài)函數(shù),這需要將他調(diào)用過(guò)來(lái),而一個(gè)靜態(tài)函數(shù)是無(wú)法直接調(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ù),無(wú)需引入其所在的源文件T也就是不需要H的第二行,因此會(huì)有人說(shuō)“只要把第二行注釋掉就行了”其實(shí)這句話(huà)的前提是say()是一個(gè)外部函數(shù)。
2019-01-24
首先要明確,引用另一個(gè)文件test.c和調(diào)用say函數(shù)可以達(dá)到同一個(gè)目的。但是像原題又引用文件,同時(shí)又調(diào)用test內(nèi)部的say函數(shù)(默認(rèn)是外部函數(shù)),則會(huì)重復(fù),出錯(cuò)。因此正確做法可以是:1.只調(diào)用外部文件,同時(shí)將test文件內(nèi)部的say函數(shù)改為static類(lèi)型。2.直接將調(diào)用文件命令注釋掉即可,默認(rèn)say是外部函數(shù),直接調(diào)用。