亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

同樣的代碼為什么我是錯的

#include?<stdio.h>

#include?"test.c"???//引用test.c文件

extern?void?printLine()?????//這里定義的方法對嗎?

{

???printf("**************\n");???

}

int?main()

{

????say();

????return?0;

}

正在回答

3 回答

第一次為:(hello.c)static——extern?第二細心觀察一下hello.c中的第二行(#include"text".c【包括(含)text.c文件】) 再看一下第九行(say();【調用text.c】) 細心觀察一下text.c的源代碼你會發現其實這倆行的目的都是一樣的在調用(hello.c調用text.c),所以就變成了重復調用text.c這時系統就會報錯。所以我們應該將text.c中的第2行(erxtern(默認)) void say()改成static void say()[這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用]? ?這樣就不會和前面的起沖突了。??

第二個方法就是把hello.c的第二行引用注釋(#include"text.c")去掉? 這樣只要把hello.c中的void printLine()前加上關鍵字【extern】,因為text.c中的say()前沒有關鍵字,所以系統默認為extern。這樣外部函數就可以隨意被調用了。


10 回復 有任何疑惑可以回復我~
#1

慕哥0569651

謝謝大佬解釋
2019-10-28 回復 有任何疑惑可以回復我~
#2

琪云

好解釋,想收藏
2019-10-28 回復 有任何疑惑可以回復我~
#3

qq_慕瓜5322433

講解十分清楚,謝大佬
2019-12-24 回復 有任何疑惑可以回復我~

看上面,還有test.c一欄

0 回復 有任何疑惑可以回復我~

什么意思?

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

同樣的代碼為什么我是錯的

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號