为了账号安全,请及时绑定邮箱和手机立即绑定

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下载
官方微信