最赞回答 / clear绪
我来解释吧!感觉楼上的都没有回答到题主想问的点子上。其实一开始我也有楼主这种疑问,所以能理解楼主为什么会有这样的困惑。看例子中的循环语句,它是假如arr[i]==value的话那么就将i作为下标返回给函数。注意这里是重点,当程序到了返回函数值这一步的时候,其实就已经相当于给了一个结束改程序的命令,所以就不再进行接下去的操作,所以就不会和题主原来想的那样(我开始也是这么想的),循环语句结束,然后继续执行 “return -1”,这一步操作,所以也就不会再返还一个值了。另一种情况,当在循环中并没有找到2个一样...
2015-11-17
最赞回答 / onemoo
这里面的错误可不只是在hello.c的第三行,写这代码的人似乎没搞明白什么是头文件...首先你要明白:include是个预处理指示,代码在编译前会将被include的文件内容写入进来。所以实际上say函数也是定义在hello.c中的,那么问题来了:在say中调用了printLine,但前面没有printLine函数的声明! 这是不应该的。不过因为C有隐式声明的特性,所以编译器不会在这里报错,它会为printLine自动推导出一个函数声明。可下面的代码就是 static void printLine() 这...
2015-11-17
最新回答 / qq__3559
因为文件hello.c的printLine()函数和test.c中的say()函数是被相互引用的,因此这两个函数都应为外部函数,在两个文件中都必须声明引用。所以小编的答案是错误的!具体代码如下:补充:extern的主要作用不在于定义外部变量或函数,而在于引用定义,如果在其他编译器中去掉#include”test.c",不然会出现重定义(例如visual studio)。hello.c文件中:#include <stdio.h>#include "test.c" //引用test.c文件ex...
2015-11-16
最新回答 / 慕移动9341187
#include<stdio.h>int saylove(){ printf("%s\n","I LOVE imooc!"); return 0; }int Dividline(){ printf("%s\n","****************"); return 0; }int main(){ Dividline(); saylove(); Dividline(); return 0; }自己对比下,你的代...
2015-11-16
最新回答 / qq__3559
因为文件hello.c的printLine()函数和test.c中的say()函数是被相互引用的,因此这两个函数都应为外部函数,在两个文件中都必须声明引用。所以小编的答案是错误的!具体代码如下:补充:extern的主要作用不在于定义外部变量或函数,而在于引用定义,如果在其他编译器中去掉#include”test.c",不然会出现重定义(例如visual studio)。hello.c文件中:#include <stdio.h>#include "test.c" //引用test.c文件ex...
2015-11-15