C++が使えるのにわざわざCの書き方をしたい理由がわかりません。
C++ならオペレーターのオーバーロードがあるので、かなり直感的にプログラムをかけます。対象の型やメモリーについてもあまり意識する必要がありません。
例えば、1から10までの積を計算するプログラムを書いてみましょう。
C++だとこうです。
#include <iostream>
#include <gmpxx.h>
int
main(void)
{
mpz_class v("1");
for (int i = 1; i < 10; i++) {
v *= i;
}
std::cout << v.get_str() << std::endl;
return 0;
}
これがCなら、こんな感じです。
#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
int
main(void)
{
mpz_t v;
mpz_init(v);
mpz_set_si(v, 1);
for (int i = 1; i < 10; i++) {
mpz_mul_si(v, v, i);
}
char* result = mpz_get_str(NULL, 10, v);
printf("%s\n", result);
free(result);
return 0;
}