我正在用这本书教我的 C 和 K&R,我对 1.7 示例中的幂函数感到困惑。
好吧,当我完全按照 Code::Block 书中给出的示例编写代码并运行它时,出现错误:undefined reference to '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;
}
幂函数是库提供的预定义函数吗?因为上面的程序没有定义power的body部分
如果是这样,为什么我会遇到错误?我是否包含了错误的库?
最佳答案
错误消息说函数 power
没有定义。我确信书中某处有函数的定义,或者有一个练习需要您自己编写函数。
可以简单写一下。例如对于正 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;
}
关于C K&R 1.7 功率函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862857/