在c中表示任意大数的最佳方法是什么?

我正在开发一个项目,要求我使用大于c中最大数值数据类型的数字。 我正在考虑使用带有位字段的结构来表示这一点,但它已经闻起来很糟糕了。 有人有任何提示吗? (不是在寻找一个图书馆,更多的是一个思考过程,以便做这样的事情。)

我建议先查看GNU MP Bignum库。

如果许可是一个问题,你必须自己动手。 我对数据类型的第一选择是一个简单的无符号字符数组以及一些额外的数据来表示该数组的大小。

像这样的东西:

typedef struct { unsigned char * NumberData; size_t AllocatedSize; } MyBigNum; 

应该足够了。

GNU MP Bignum图书馆将是我的首选。