【发布时间】:2023-03-31 04:41:01
【问题描述】:
我习惯于 C 和 C++,其中大多数基本类型都有未指定的大小。我一直认为存在这些未指定的大小是为了提供跨不同架构的效率。
然而,在使用了 Rust 和 D 等语言之后,
我看到他们所有的基本/原始类型大多是固定的。
为什么 D 选择省略未指定尺寸的类型?
这不会影响跨机器的效率吗?
还是效率问题太微不足道而无法超过使用固定类型的安全性?
我希望找到一些关于这个决定的文献,因为它是在两种没有固定大小作为基本类型的语言之后做出的。希望这不是太基于选项。
【问题讨论】:
-
相反的问题在这里:stackoverflow.com/questions/35517341/… 我喜欢这句话“它使语言更便携,但用这种语言编写的程序可能更不便携”。
-
Java 也有固定的类型大小。它使编写代码变得更容易,但不一定要尽可能快地编写代码。
-
如果你真的想要,你可以使用平台特定的类型,例如
size_t在 x86 上是uint在 x86_64 上是ulong和real在你的架构中为你提供尽可能高的精度. -
大多数以可移植性为目标的 C 程序无论如何都倾向于使用固定大小的别名...
标签: types size d sizeof fixed-width