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

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

這一節(jié)不懂?

基本都是兩種方法:
第一:hello文件,去掉第二行,第三行static改為extern;
第二:hello文件,第三行static改為extern;test文件,第二行void前加上static。
具體原理我不懂,求大神指教。

正在回答

2 回答

關(guān)于這道題的理解:

圖一圖二分別為兩個源文件

圖一中末尾處調(diào)用了say(),由于say()在第二個源文件中是外部函數(shù),因此say有兩個來源,其中之一為源文件1引用里的say,另一是源文件2里的say,因此報錯。

解決方式:

1.?干脆刪去引用,將say看作外部函數(shù)直接從源文件2中調(diào)用

2.?將源文件2的say改為內(nèi)部函數(shù),這樣源文件1末位1處的say()一定是調(diào)用的引用處的數(shù)據(jù)塊里的say,而不是源文件2里的say,因為內(nèi)部函數(shù)只能在所在的源文件中調(diào)用。


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

第一步(hello.c)static——extern ,這個易懂,然后細(xì)心觀察一下hello.c中的第二行(#include"text".c【意思是包括(含)text.c文件,引用了一次文件了】) 再看一下第九行使用函數(shù)say();使用文件中函數(shù)會再次【調(diào)用text.c】) ,所以就變成了重復(fù)調(diào)用text.c這時系統(tǒng)就會報錯。所以我們應(yīng)該將text.c中的第2行(erxtern(默認(rèn))) void say()改成static void say()[這里的static是對函數(shù)的作用范圍的一個限定,限定該函數(shù)只能在其所處的源文件中使用]? ?這樣就只是#include"text".c調(diào)用另一個文件(include的作用就是把另一個文件的內(nèi)容全部復(fù)制過來),下面第九行使用函數(shù)say()就不能調(diào)用另一個文件了因為已經(jīng)改為局部的,但是已經(jīng)復(fù)制過來了,say()已成為hello.c的一部分,所以還是能調(diào)用say()

第二個方法就是把hello.c的第二行引用注釋(#include"text.c")去掉? 這樣下面使用say()函數(shù)的時候就只是引用一次另一個文件就不會重復(fù)了,然后把hello.c中的void printLine()前加上關(guān)鍵字【extern】,因為text.c中的say()前沒有關(guān)鍵字,所以系統(tǒng)默認(rèn)為extern。這樣外部函數(shù)就可以隨意被調(diào)用了。


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

銀河與星星

還是懵懵的……
2019-12-05 回復(fù) 有任何疑惑可以回復(fù)我~
#2

蘇洋哈哈 回復(fù) 銀河與星星

我想吃掉你,小甜餅
2019-12-24 回復(fù) 有任何疑惑可以回復(fù)我~
#3

抹茶松露冰激凌 回復(fù) 蘇洋哈哈

我想吃掉你
2020-01-16 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕粉2875371 回復(fù) 抹茶松露冰激凌

我想吃掉你,抹茶松露冰激凌
2020-01-16 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

舉報

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

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

進(jìn)入課程

這一節(jié)不懂?

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

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

幫助反饋 APP下載

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

公眾號

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