Next: , Previous: , Up: Integer Functions   [Index]


5.3 初期化代入関数

GMPでは,変数の初期化と値の代入をまとめて実行する便利な関数(mpz_init_set…から始まる関数名)が用意されています。

下記に使い方の例を示します。

{
  mpz_t pie;
  mpz_init_set_str (pie, "3141592653589793238462643383279502884", 10);
  …
  mpz_sub (pie, …);
  …
  mpz_clear (pie);
}

多倍長整数をmpz_init_set…関数で一度初期化すると,他の多倍長整数関数で利用可能な状態にできます。 但し,一度初期化した変数に対しては実行しないようにして下さい。

Function: void mpz_init_set (mpz_t rop, const mpz_t op)
Function: void mpz_init_set_ui (mpz_t rop, unsigned long int op)
Function: void mpz_init_set_si (mpz_t rop, signed long int op)
Function: void mpz_init_set_d (mpz_t rop, double op)

ropをリム格納スペース付きで初期化し,opの値を初期値として代入します。

Function: int mpz_init_set_str (mpz_t rop, const char *str, int base)

ropを初期化してmpz_set_str関数同様に文字列を変換して値をセットします (詳細は本文書の当該関数を参照のこと)。

文字列が基数baseで表現される正しい値であれば0を返し,エラーになれば-1を返します。エラーになったとしてもropの初期化は実行されます(リリース時にはmpz_clear関数を呼び出す必要あり)。