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

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

5-13在code blocks里面怎么編譯啊

我用的code blocks,建立工程有一個main.c然后我又添加一個.c文件命名為test.c,把慕課網上的hello.c的內容復制到main.c,把test.c復制到test.c編譯提示2個錯誤 ??

E:\C語言學習練習\外部函數\test.c|2|multiple definition of `say'|

obj\Debug\main.o:E:\C語言學習練習\外部函數\test.c|2|first defined here|http://img1.sycdn.imooc.com//596f2b0400016d9913660736.jpg

http://img1.sycdn.imooc.com//596f2b1f0001352a13660736.jpg

http://img1.sycdn.imooc.com//596f2b1f00016d9913660736.jpg


正在回答

1 回答

這樣用的話,你應該建立test.h的頭文件,而不是 ?.c 結尾的C語言文件,自定義頭文件的格式入下:

/*test.h*/

#ifndef?_TSET_H_??????????????????????//第3、4和最后一行(24),是固定格式,??_TSET_H_??是?test.h?頭文件固定形式
#define?_TEST_H_

#include?<stdio.h>

extern?void?say();????????????????????//頭問價里的全局函數定義格式
void?printLine();?????????????????????//頭文件內部函數定義,(注:該函數前面可以用extern,不影響運行結果)

void?printLine()??????????????????????//函數內容
{
???printf("**************\n");
}

void?say(){
????printLine();
????printf("I?love?imooc\n");
????printf("good?good?study!\n");
????printf("day?day?up!\n");
????printLine();
}

#endif
/*main.c*/

#include?<stdio.h>
#include?"test.h"???//引用?test.h?頭文件

int?main()
{
????say();???????????//調用頭文件里的全局函數
????return?0;
}

下面是編譯運行的結果

http://img1.sycdn.imooc.com//5970659e000171a012230639.jpg

不知道是否達到你心中的效果;

如果還有疑問,可以聯系我哦~

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

慕妹0983297 提問者

原題目中是在hello.c中調用了say(),在test.c中調用了printline(),但是你這樣寫就只在main.c中調用了say(),如果按照原題目中兩個.c文件(也就是說建立test.c結尾的文件,引用test.c文件而不是引用test.h文件),該怎么寫呢?
2017-07-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

5-13在code blocks里面怎么編譯啊

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

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

幫助反饋 APP下載

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

公眾號

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