使用 GMP.h 头文件时的返回类型
当我使用 gmp.h 头文件时。我需要一个函数,它接受 mpz_t 类型的输入并返回 mpz_t 类型。 我是使用 gmp.h 的初学者 所以,这是我所接近的代码的快照...
mpz_t sum_upto(mpz_t max)
{
mpz_t sum;
mpz_init(sum);
mpz_init(result);
for(int i=0;i<=max-1;i++)
mpz_add_ui(sum,sum,pow(2,i));
return sum;
}
但它会显示错误:
- pow 在此范围内未使用。”,尽管我在文件的最开头添加了 math.h。
- sum_upto 声明为函数返回一个数组...
While I'm using gmp.h header file. I need a function which takes inputs of type mpz_t and return mpz_t type too.
I'm very beginner of using gmp.h
So, Here is snaps follows of my approached code...
mpz_t sum_upto(mpz_t max)
{
mpz_t sum;
mpz_init(sum);
mpz_init(result);
for(int i=0;i<=max-1;i++)
mpz_add_ui(sum,sum,pow(2,i));
return sum;
}
but it will show error:
- pow has been not used in this scope.", although I have added math.h at the very beginning of the file.
- sum_upto declared as function returning an array...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 GMP 的函数约定可以在手册中找到。本质上,您必须遵循与 GMP 本身相同的约定 - 函数必须具有 void 返回类型,并且您必须提供一个值以将结果作为参数放入其中。
这是给出的示例:
The convention for functions using GMP can be found in the manual. Essentially, you must follow the same conventions that GMP itself does - the function must have a void return type, and you must provide a value into which to put the result as a parameter.
Here is the example given:
请尝试以下操作:
此外,您可以删除
math.h
标头。Try the following:
Furthermore you can possibly drop the
math.h
header.返回 mpz_t 不会返回对象,只返回一个指针,这几乎肯定不是我们想要的。
下面是一个接受 mpz_t 参数、进行计算并将结果存储到指定参数的示例。
A return of an mpz_t doesn't return the object, only a pointer, and this is almost certainly not what's wanted.
Here's an example accepting an mpz_t parameter, doing a calculation, and storing the result to the indicated parameter.