C 康乐及文化事务署;R 1.7幂函数

C 康乐及文化事务署;R 1.7幂函数,c,function,undefined-reference,C,Function,Undefined Reference,我在用K&R这本书教我的C,但被1.7例子中的幂函数弄糊涂了 好的,当我完全根据code::Block一书中给出的示例编写代码并运行它时,出现了一个错误:未定义对“power”的引用 代码如下: #include <stdio.h> #include <stdlib.h> int power(int m, int n); main () { int i; for (i = 0; i < 10; ++i) printf("%d %d

我在用K&R这本书教我的C,但被1.7例子中的幂函数弄糊涂了

好的,当我完全根据code::Block一书中给出的示例编写代码并运行它时,出现了一个错误:未定义对“power”的引用

代码如下:

#include <stdio.h>
#include <stdlib.h>

int power(int m, int n);
main ()
{
    int i;
    for (i = 0; i < 10; ++i)
        printf("%d %d %d\n", i, power(2, i), power(-3, i));
    return 0;
}
#包括
#包括
整数幂(整数m,整数n);
主要()
{
int i;
对于(i=0;i<10;++i)
printf(“%d%d%d\n”,i,幂(2,i),幂(-3,i));
返回0;
}
幂函数是库提供的预定义函数吗?因为上面的程序没有定义权力的身体部分


如果是这样,我为什么会出错?我是否包含了错误的库?

标准C库中没有定义名为
power()
。如果你想要一个
power()
函数,你必须在使用它之前编写自己的函数


若你们想要一个库函数,它被调用,在数学库中定义。包括头文件
math.h
,无需向前定义原型。另外,不要忘记使用
-lm

链接数学库。错误消息表示未定义函数
电源。我确信书中的某个地方有函数的定义,或者有一个练习要求你自己编写函数

它可以写得很简单。例如,对于正n,函数可以如下所示

int power(int m, int n)
{
    int result = 1;

    for ( ; n; --n ) result *= m;

    return result;
}
您可以修改函数,使其接受负数n.:)

考虑到如果函数有返回类型
long-long-int

比如说

long long int power(int m, unsigned int n)
{
    long long int result = 1;

    for ( ; n; --n ) result *= m;

    return result;
}

power
更改为
pow
(如果要执行此操作,请删除
int power(int m,int n);
)或者在名为
power
的函数中创建自己的版本,该函数接受两个
int
s并返回一个
int
@Steveloxin我确信书中的某个地方有power的定义,或者有一个练习要求您自己编写函数。:)更仔细地检查这本书。在签名之前
intpower(intm,intn)
表示这是用户定义的功能。
power
功能的完整代码在下一页的顶部给出。我非常感谢在投票前或投票后发表评论。恕我直言,先生,这不就像是在做他/她的家庭作业,鼓励他/她将来提出更多这样的问题吗?伊姆霍,我们仍然没有任何证据证明OP方面做出了真正的努力。@Sourav Ghosh事实上这是你的或我的家庭作业。:)你可以自己做,也可以忽略它。:)每个人自己决定。:)