假设 int 的数据大小默认为 4 字节,其 8 字节的两倍。我们可以构建这样一个大小为 n 的数据类型,比如 64 字节或 100 字节。我不想使用内部数据类型或任何用户定义的数据类型。目前正在从事一个需要高数据处理能力的项目。使用 long double 但当数据值从 20-25 位增加时程序停止。
问问题
188 次
不,您不能“构建”新的本机类型,而不是(当然)修补编译器以扩展语言。那时,您不再使用标准 C(也不是 C++),而是使用它的一些扩展。
C 和 C++ 的本机类型的重点是在本机级别上表达典型 CPU 硬件可以做的一个不错的近似。您不能期望在类型方面“超越”而不期望完成工作,即实现抽象。
多精度库通过使用许多本机数字表示更大的数字来工作,并包括根据需要进行算术运算的代码。这是行之有效的做法,周围有很多成熟的此类库,例如GMP。
有可能只是“构建一个数据类型”来解决这个问题,那些库将不存在。