GMP 库中是否有零常数?

Is there a zero constant in the GMP library?

在一个程序中,我必须检查某个数字是否等于零。一种方法是只初始化一个 mpz_t 并检查原始数字是否等于它。但是 GMP 中肯定有一个零常数,比如 Java & Kotlin?

中的 BigInteger.ZERO

(不知何故 this 页面不包含我想要的内容;我确实“检查了很好的手册”并使用了搜索引擎,对于那些遵守此页面上的标准礼貌水平的人.)

非常感谢您!

编辑:我刚刚了解到可以将 mpz_t 与整数进行比较,这样就可以做类似 mpz_cmp_ui(variable, 0) == 0 的事情。 Marc Glisse 的答案给出的解决方案可能更快。

要测试 z 是否为零,您可以测试 mpz_sgn(z)==0mpz_size(z)==0,您不需要值为 0 的 mpz_t。如您所见,您还可以将 zmpz_cmp_uimpz_cmp_si.

的本机整数进行比较

没有预定义常量 0。如果需要,调用 mpz_init 足够便宜(无需分配)来创建一个零。