代码之家  ›  专栏  ›  技术社区  ›  bugmagnet

这是GMP 4.1.2中的错误还是我做错了什么?

gmp c
  •  0
  • bugmagnet  · 技术社区  · 15 年前

    我将字符串传递给这段代码 "kellogs special k" 我得到 1 这意味着字符串是一个整数。我到底做错了什么?还是GMP问题?

    #define F(x) mpf_t (x); mpf_init( (x) );
    
    long __stdcall FBIGISINTEGER(BSTR p1) {
        USES_CONVERSION;
        F(n1);
        LPSTR sNum1 = W2A( p1 );
        mpf_set_str( n1, sNum1, 10 );
        return mpf_integer_p( n1 );
    }
    

    顺便说一下,如果有人建议使用更新的GMP,请告诉我Windows静态库的网址。蒂亚。

    1 回复  |  直到 15 年前
        1
  •  3
  •   laalto    15 年前

    您应该检查 mpf_set_str . 它回来了 0 论成功与发展 -1 一旦失败。在这种情况下,它将返回一个失败,并且 n1 没有动过。 mpf_init 将其初始化为零,因此测试零是否为带 mpf_integer_p 返回true。