WORD分别在32/64位操作系统中包含多少位?

com*_*ler 35 cpu-word

有人有明确的答案吗?

有人说在32位操作系统上,WORD意味着16位,是吗?

Mer*_*ham 46

在通常的用法中,字大小是指处理器寄存器的大小.在32位处理器上,这将是32位.在64位处理器上,这将是64位.

处理器的位大小在某种程度上与OS的位大小无关.例如,您可以在64位处理器上运行32位窗口.您的字大小仍然是64位,但程序将无法处理整个处理器字.

在传统的Windows编程中,有一个被定义的宏WORD,其大小为16位.当处理器为16位时,这是有意义的.但是,即使为32位或64位目标编译包含此宏的代码,它仍将是16位.

使低级代码面向未来是很困难的,这是你(或微软)可能出错的一个例子:)

  • @Qix:如果你想要大小正好为16位的整数,是的,这正是你要做的.那么,`<cstdint>`[根据这个答案](http://stackoverflow.com/a/13643019/232593).如果你为了速度而试图与处理器的字大小对齐(这就是我猜测`WORD`宏的初衷),那么你可能想要做其他事情,比如` int_fastX_t`类型. (2认同)