警告:未定义的函数引用

时间:2015-02-06 12:25:04

标签: c function undefined-reference

我一直收到警告,说我的函数有一个未定义的引用,并没有真正对我说或如何解决它。这是错误

  

log_2.c:在函数'main'中:log_2.c:29:warning:implicit   函数'logbase2'/tmp/ccAXAmVb.o的声明:在函数中   ' main':log_2.c :(。text + 0x5e):对`logbase2'的未定义引用   collect2:ld返回1退出状态

继承我的代码:

int logbasetwo (int number)
{
int test;
for (int i = 0; i< number; i++){
    test = 2 ^ i;
    int result = i;
}


return result;
}

int main(){

printf("Enter a positive integer: ");
int number = get_int();
int logresult;
if (number > 0){
logresult=logbase2(number);

}


else (number < 0){
    printf("Not a positive number. Re-enter: ");
    number = get_int(); 

}

printf("Log base two of number is:%i", logresult);


}


return 0;
}

1 个答案:

答案 0 :(得分:4)

好吧,在您的代码中,使用了logbase2()logbasetwo(),这些都不一样!!!

您已定义了一个名为logbasetwo()的函数,但您调用了logbase2()

更改其中任何一个以匹配其他任何一个。

此外,您需要更改逻辑test = 2 ^ i;。正如 @Bathsheba 先前的评论中提到的那样,^运算符用于XOR,而不是取幂。

您需要使用pow()

相关问题