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

为什么运行失败

为什么运行失败?求大神指导。

#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语言入门
  • 参与学习       924448    人
  • 解答问题       20757    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

为什么运行失败

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信