作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 C 中实现我自己的 GMP mpz_t 数据类型版本。为此,我在定义 mpz_t 的结构时遇到了问题。
这是因为我像这样定义我的 mpz_t
typedef struct integer
{
int array[100];
int no_digits;
}mdi;
显然,我将大值存储为整数数据类型的数组,no_digits 是结构中的位数。但现在,对于 init 函数,我必须满足以下原型(prototype)
void mdi_init(mdi x); // Initialises the data-type.
这里返回类型为void,输入参数为mdi类型。我很困惑如何用我的 mdi 定义来满足这个要求。
需要帮助。
最佳答案
I am confused as to how to meet this requirement with my definition of mdi.
你不能。
struct
按值传递,因此采用 mdi
作为参数的函数无法更改传递的参数。
GMP 将 mpz_t
定义为 __mpz_struct
的数组(长度为 1),
typedef __mpz_struct mpz_t[1];
和 __mpz_struct
类似于您的 mdi
结构。因此,mpz_init()
接收一个指向 __mpz_struct
的指针。您需要执行相同的操作,可以使 mdi_init()
显式地将指向 mdi
的指针作为参数,或者像 GMP 一样,使 mdi
code> 一个由 mdi_struct
组成的数组(长度为 1)。
关于c - gmp库的mdi_init的C实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14688010/
我是一名优秀的程序员,十分优秀!