我观察到 long 的大小总是等于任何给定 CPU 架构的 WORD 大小。对所有架构都是如此吗?我正在寻找一种可移植的方式来表示 C 中 WORD 大小的变量。
最佳答案
C 不处理指令。在 C99 中,您可以使用单个赋值复制任何大小的 struct
:
struct huge { int data[1 << 20]; };
struct huge a, b;
a = b;
使用智能编译器,这应该会生成最快的(单线程,尽管将来希望是多线程)代码来执行复制。
如果您想要供应商定义的“尽可能快”的整数类型,则可以使用 int_fast8_t
类型。这可能与字长相对应,但不能保证它甚至是单指令可写的。
我认为您最好的选择是默认为一种类型(例如 int
)并使用 C 预处理器针对某些 CPU 进行优化。
关于c - C 中的原始数据类型,用于表示 CPU 架构的 WORD 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489369/