我刚刚在我的 Mac 上安装了 gmp 多精度算术库。每当我编译程序时,我都会收到此警告:
warning: implicit declaration of function '__gmpz_out_str' is
invalid in C99 [-Wimplicit-function-declaration]
mpz_out_str(stdout,10,p);
/usr/local/include/gmp.h:951:21: note: expanded from macro 'mpz_out_str'
#define mpz_out_str __gmpz_out_str
Run Code Online (Sandbox Code Playgroud)
我将得到一个可以工作的可执行文件,但是当我使用这个特定的函数时我总是得到这个。主文件如下所示:
#include <gmp.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void fact(int n){
int i;
mpz_t p;
mpz_init_set_ui(p,1); /* p = 1 */
for (i=1; i <= n ; ++i){
mpz_mul_ui(p,p,i); /* p = p * i */
}
printf ("%d! = ", n);
mpz_out_str(stdout,10,p);
mpz_clear(p);
}
int main(int argc, char * argv[]){
int n; …Run Code Online (Sandbox Code Playgroud)