对于 int 来说,数据大小默认为 4 字节,双倍为 8 字节。我们可以构建这样一个大小为 n 的数据类型(例如 64 字节或 100 字节)吗?我不想使用内部数据类型或任何用户定义的数据类型。 目前正在从事一个需要高数据处理能力的项目。使用 long double,但当数据值从 20-25 位增加时程序会停止。
最佳答案
不,您不能“构建”新的 native 类型,除非(当然)修补编译器以扩展语言。那时,您不再使用标准 C(也不是 C++),而是使用其某些扩展。
C 和 C++ 的 native 类型的要点是在 native 级别表达典型 CPU 硬件可以执行的操作的近似值。您不能期望在类型方面“超越”它而不期望完成工作,即实现抽象。
多精度库的工作原理是使用许多 native 数字表示较大的数字,并包含根据需要进行算术的代码。这是行之有效的做法,并且周围有许多成熟的此类库,例如 GMP .
如果可以只“构建一个数据类型”来解决这个问题,那么这些库就不会存在。
关于c++ - 如何在 C 或 C++ 中构建大小为 n 的全新数据类型而不使用任何用户定义的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344604/