c++ - 如何在 C 或 C++ 中构建大小为 n 的全新数据类型而不使用任何用户定义的数据类型?

标签 c++ c types

对于 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/

相关文章:

types - 如果两件事不相等,它们是否相等?

haskell - 我可以创建一个类似于 Int 的 'Looks' 仿函数数据类型吗?

c++ - 奇数重复符号错误

c++ - 对通过引用传递给它的第一个元素的数组进行操作

c++ - 从具有可变参数的模板类继承

c - LocalReAlloc 失败

c++ - Winelib 能否将 DLL 直接链接到 ELF 可执行文件?

c - PlatformIO 构建失败 : undefined reference to http_parser_init

c - 如何让 CLion 调试器/控制台告诉我我的程序运行了多少秒?

c++ - unique_ptr<int[]>、vector<int> 和 int[] 的模板化类型查找