问答详情
源自:5-13 内部函数与外部函数

这答案也太奇怪了吧

http://img.mukewang.com/566e8728000135f911080845.jpg

答案给的就是这样子  可是就是不能运行出和答案一样

而且左边答案运行出来怎么会有那么多东西能  明明代码那里要printf的东西就只有**********而已   至于其他的英文是从哪里来的呀?

提问者:super珊__ 2015-12-14 17:10

个回答

  • onemoo
    2015-12-14 23:13:35
    已采纳

    那些话在test.c中的say函数中。

    不过这题目完全出错了,别纠结这题了。


    你应该已经看过这里的详细解释了 http://www.imooc.com/qadetail/105343  如果还不太明白,就先跳过这节吧。

    嗯...其实我觉得我的那个回答写得还算比较详细,要不你指出来哪里不懂,我试着再解释下...

  • qq_奉献一双手_0
    2016-02-03 16:14:22

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

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

  • qq__3559
    2016-01-22 20:38:58

    补充:extern的主要作用不在于定义外部变量或函数,而在于引用定义,如果在其他编译器中去掉#include”test.c",不然会出现重定义(例如visual studio)。

  • qq__3559
    2016-01-22 01:27:05

    因为文件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();
    }


  • super珊__
    2015-12-14 19:16:20

    那为什么什么都调试不出来呢  错在哪里了

  • Astoke
    2015-12-14 18:20:46

    say()应该是 test.c里定义的函数,然后里面调用了 这里的 printline,同时 print了一这一堆英文


    不过 ,include .c我也是醉了