我必须对数字很大(一些数字大于long long int)。从类型'int'分配类型'bignum'时,我遇到的问题是不兼容的类型 下面给出了代码,并提供了声明。请帮帮我。
typedef struct {
char digits[MAXDIGITS]; /* represent the number */
int lastdigit; /* index of high-order digit */
} bignum;
bignum add_bignum(bignum a, bignum b);
bignum square(bignum x);
bignum square(bignum x){
bignum c;
.
.
.
return c;
}
bignum modified_fibo(int A,int B,int N){
bignum fibo[N-1];
int i;
fibo[0]=initialise(A);
fibo[1]=initialise(B);
bignum val;
for(i=2;i<N;i++){
val = bignum_square(fibo[i-1]);
fibo[i] = add_bignum(val,fibo[i-2]);
}
return fibo[N-1];
}
我遇到错误 val = bignum_square(fibo [i-1]);
答案 0 :(得分:0)
当编译器看到函数调用没有定义的函数时,它隐式声明一个返回类型为int
的函数。您定义了一个函数
bignum square(bignum x);
但没有
bignum bignum_square(bignum x);
所以编译器隐式声明
int bignum_square(bignum x);
并且您收到错误,因为在此处使用隐式声明的函数时,您将int
分配给bignum
val = bignum_square(fibo[i-1]);
正如评论中所建议的,使用您已定义的功能
val = square(fibo[i-1]);