super珊__
2015-12-14 17:10
答案给的就是这样子 可是就是不能运行出和答案一样
而且左边答案运行出来怎么会有那么多东西能 明明代码那里要printf的东西就只有**********而已 至于其他的英文是从哪里来的呀?
那些话在test.c中的say函数中。
不过这题目完全出错了,别纠结这题了。
你应该已经看过这里的详细解释了 http://www.imooc.com/qadetail/105343 如果还不太明白,就先跳过这节吧。
嗯...其实我觉得我的那个回答写得还算比较详细,要不你指出来哪里不懂,我试着再解释下...
你在“test.c”文件中把printLine()函数声明一次
printLine()函数在hello.c文件声明也可以,但要在#include"test.c"文件之前声明
补充:extern的主要作用不在于定义外部变量或函数,而在于引用定义,如果在其他编译器中去掉#include”test.c",不然会出现重定义(例如visual studio)。
因为文件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();
}
那为什么什么都调试不出来呢 错在哪里了
say()应该是 test.c里定义的函数,然后里面调用了 这里的 printline,同时 print了一这一堆英文
不过 ,include .c我也是醉了
C语言入门
926021 学习 · 20793 问题
相似问题