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

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

為什么運行失敗

為什么運行失敗?求大神指導。

#include <stdio.h>

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

extern void printLine()? ? ?

{

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

}

int main()

{

? ? say();

? ? return 0;

}


正在回答

2 回答

這個是hello.c中的代碼,另外在test.c中 void say() 默認是外部函數,但是在hello.c中第二行又引用了test.c其實是沒必要的。說白了就是人家本來就是外部函數可以直接調用但是你又引用了他的文件。

兩種可以方法解決:

  1. hello.c中把第二行引用test.c注釋掉;

  2. test.c中把void say()定義為內部函數即static?void say() 。

問題倒可以解決,但是并不確定也不明白為什么外部函數和引用文件會有沖突,可能跟編譯器有關吧。?

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

_Lional

你好,我覺得你說的答案很有道理,然后我在VS上面分別運行了一下這兩種改寫方式,但為啥第二種還是運行出錯啊,我把代碼和第二種方式錯誤信息寫在下面了,求指導!謝啦!
2019-01-22 回復 有任何疑惑可以回復我~
#2

明天就開始學習 回復 _Lional

很久沒上慕課學習了,不過沒看到你發的代碼和錯誤信息啊。
2019-02-23 回復 有任何疑惑可以回復我~
hello.c中

#include?<stdio.h>
void?printLine()?????//這里定義的方法對嗎?
{
???printf("**************\n");???
}
extern?void?say();
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/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

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

進入課程

為什么運行失敗

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

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

幫助反饋 APP下載

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

公眾號

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