【发布时间】:2016-10-01 19:32:39
【问题描述】:
请有人可以解释一下为什么会出现此错误:
error: control may reach end of non-void function
我正在尝试创建一个函数linearsearch() 获取一个键和一个表,如果找到则返回元素的索引。
这令人困惑;我是初学者,正在学习cs50在线课程;我以前从来没有遇到过这个错误。
#include <stdio.h>
#include <string.h>
#include <cs50.h>
int linearsearch(int key, int array[]);
int main(int argc , string argv[])
{
int key = 0;
int table[]={2,4,5,1,3};
printf("%i is found in index %i\n",key,linearsearch(1,table));
}
int linearsearch(int key, int array[])
{
for(int i = 0;i<5;i++){
if(array[i] == key)
{
return i;
}
else{
return -1;
}
}
}
【问题讨论】:
-
这里没有从无空函数返回值的适用错误。 可能有一个(不正确的)编译器警告。代码中明显的错误在别处。
-
错误可能是指未从
main返回值(并且编译器处于 C99 之前的模式)。错误消息应该有一个与之关联的行号。
标签: c cs50 linear-search