【发布时间】:2015-09-12 12:05:43
【问题描述】:
a->data 的类型是uint64_t *。我在头文件中查了一下,uint64_t 被定义为unsigned long int。我想使用_addcarryx_u64 函数。根据头文件,此函数的最后一个参数是unsigned long long * 类型。
两者都是无符号的 64 位整数。但是从技术上讲,它们是不同的,我不断收到这样的烦人警告...
warning: passing argument 4 of ‘_addcarryx_u64’ from incompatible pointer type
char c = _addcarryx_u64(0, a->data[0], b, a->data);
如何解决此问题或禁用警告。我知道我可以转换我的指针,但我喜欢以某种独立于编译的方式进行编码,addcarryx 可以在另一个系统上以不同的方式定义。
另外,我注意到我的 gcc 版本只支持addcarryx 而不是普通的addcarry。有什么原因吗?
还只是为了让您知道我在 ubuntu 上运行 GCC 4.9 编译。我设置了-std=gnu99。
【问题讨论】: