GMP大数库的问题gmp.h(2177): error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

a2175919 2015-04-03 11:22:40
include "gmph" 空实现。直接报1>c:\workspace\test\test\gmp.h(2177): error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型。。。这个怎么解决呢。

gmp.h文件中报错部分代码。。。


#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_neg)
#if ! defined (__GMP_FORCE_mpn_neg)
__GMP_EXTERN_INLINE
#endif
mp_limb_t
mpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n)0
{
mp_limb_t __gmp_ul, __gmp_cy;
__gmp_cy = 0;
do {
__gmp_ul = *__gmp_up++;
*__gmp_rp++ = -__gmp_ul - __gmp_cy; /////////////2177行。报错问题所在行
__gmp_cy |= __gmp_ul != 0;
} while (--__gmp_n != 0);
return __gmp_cy;
}
#endif
...全文
1140 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉醉上 2017-04-14
  • 打赏
  • 举报
回复
我想问,楼主解决这个问题了么
G_lost 2015-12-24
  • 打赏
  • 举报
回复
楼主解决了么
lxg675797265 2015-04-19
  • 打赏
  • 举报
回复
我也遇到同样问题了,查看后发现是可能VS2013的原因,估计VS2010不会有这样的问题。
赵4老师 2015-04-08
  • 打赏
  • 举报
回复
引用 8 楼 a2175919 的回复:
[quote=引用 7 楼 zhao4zhong1 的回复:] 建议楼主先编译链接调试GMP大数库自带的例子代码。
我只引用了下他的头文件。。main里面为空。。[/quote] 你编译链接调试过一个GMP大数库自带的例子代码吗?
a2175919 2015-04-08
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
建议楼主先编译链接调试GMP大数库自带的例子代码。
我只引用了下他的头文件。。main里面为空。。
赵4老师 2015-04-07
  • 打赏
  • 举报
回复
建议楼主先编译链接调试GMP大数库自带的例子代码。
ri_aje 2015-04-06
  • 打赏
  • 举报
回复
引用 3 楼 a2175919 的回复:
[quote=引用 1 楼 ri_aje 的回复:] mp_limb_t 是什么类型,无符号的吗?
typedef unsigned int mp_limb_t; 是的。。这个文件是我通过编译gmp得到的。不是我直接写的,。[/quote] 那就没办法了,无符号取负值就是没意义。 你在源代码里面搜索 mp_limb_t 定义的地方,有可能是某些宏开关控制着,看看有没有什么分支能将其定义为有符号的,然后看看怎么把这样的分支打开。
707wk 2015-04-05
  • 打赏
  • 举报
回复
https://msdn.microsoft.com/zh-cn/library/4kh09110.aspx
ri_aje 2015-04-05
  • 打赏
  • 举报
回复
mp_limb_t 是什么类型,无符号的吗?
a2175919 2015-04-05
  • 打赏
  • 举报
回复
引用 3 楼 a2175919 的回复:
[quote=引用 1 楼 ri_aje 的回复:] mp_limb_t 是什么类型,无符号的吗?
typedef unsigned int mp_limb_t; 是的。。这个文件是我通过编译gmp得到的。不是我直接写的,。[/quote] http://download.csdn.net/detail/G_Spider/2970355这里下载的也是一样的问题
a2175919 2015-04-05
  • 打赏
  • 举报
回复
引用 2 楼 zxh707wk 的回复:
https://msdn.microsoft.com/zh-cn/library/4kh09110.aspx
这个库文件怎么使用 INT_MIN 。。
a2175919 2015-04-05
  • 打赏
  • 举报
回复
引用 1 楼 ri_aje 的回复:
mp_limb_t 是什么类型,无符号的吗?
typedef unsigned int mp_limb_t; 是的。。这个文件是我通过编译gmp得到的。不是我直接写的,。

64,634

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧