gpt4 book ai didi

c - gmp库的mdi_init的C实现

转载 作者:行者123 更新时间:2023-11-30 15:52:07 26 4
gpt4 key购买 nike

我正在尝试在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com