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

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

這答案也太奇怪了吧

http://img1.sycdn.imooc.com//566e8728000135f911080845.jpg

答案給的就是這樣子 ?可是就是不能運行出和答案一樣

而且左邊答案運行出來怎么會有那么多東西能 ?明明代碼那里要printf的東西就只有**********而已 ? 至于其他的英文是從哪里來的呀?

正在回答

6 回答

那些話在test.c中的say函數中。

不過這題目完全出錯了,別糾結這題了。


你應該已經看過這里的詳細解釋了?http://www.xianlaiwan.cn/qadetail/105343??如果還不太明白,就先跳過這節吧。

嗯...其實我覺得我的那個回答寫得還算比較詳細,要不你指出來哪里不懂,我試著再解釋下...

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

前因后果

如何去修改這個錯誤的題目呢,請把代碼也貼出來吧
2015-12-14 回復 有任何疑惑可以回復我~
#2

onemoo 回復 前因后果

在不修改這個代碼結構的條件下,去掉hello.c第3行的static,或將其改為extern都可以。 不過最近本站的答案判斷一直有問題,不確定能不能通過本站的測試。 請注意:在實際編程中,這樣改雖然可以編譯通過,但這個程序結構還是有問題的,具體問題點和解決辦法的我已經在那個帖子中描述過了。
2015-12-15 回復 有任何疑惑可以回復我~
#3

前因后果 回復 onemoo

請舉一個正確的調用另一個.c文件中函數的例子吧
2015-12-16 回復 有任何疑惑可以回復我~
#4

onemoo 回復 前因后果

那個回答中有 “正確的做法是:被include的文件都應該是所謂的“頭文件”,也就是只含有聲明的文件。 test.c中是say函數的定義,不應直接包含到hello.c中。 應該將say函數的聲明寫到另一個test.h中,再在hello.c中include <test.h> 另外頭文件中還必須要做“重復包含保護”,顯然被include的test.c中也沒有這樣做。”
2015-12-16 回復 有任何疑惑可以回復我~
#5

super珊__ 提問者

非常感謝!
2016-03-02 回復 有任何疑惑可以回復我~
查看2條回復

你在“test.c”文件中把printLine()函數聲明一次

printLine()函數在hello.c文件聲明也可以,但要在#include"test.c"文件之前聲明

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

補充:extern的主要作用不在于定義外部變量或函數,而在于引用定義,如果在其他編譯器中去掉#include”test.c",不然會出現重定義(例如visual studio)。

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

因為文件hello.c的printLine()函數和test.c中的say()函數是被相互引用的,因此這兩個函數都應為外部函數,在兩個文件中都必須聲明引用。所以小編的答案是錯誤的!具體代碼如下:

hello.c文件中:

#include <stdio.h>
#include "test.c"?? //引用test.c文件
extern void say();
void printLine()???? //這里定義的方法對嗎?
{
?? printf("**************\n");??
}
int main()
{
??? say();
??? return 0;
}

test.c文件中:

#include <stdio.h>
extern void printLine();
void say(){
??? printLine();
??? printf("I love imooc\n");
??? printf("good good study!\n");
??? printf("day day up!\n");
??? printLine();
}


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

那為什么什么都調試不出來呢 ?錯在哪里了

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

say()應該是 test.c里定義的函數,然后里面調用了 這里的 printline,同時 print了一這一堆英文


不過 ,include .c我也是醉了

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

舉報

0/150
提交
取消

這答案也太奇怪了吧

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

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

幫助反饋 APP下載

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

公眾號

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