作者:leooooo | 来源:互联网 | 2023-01-29 20:17
我声明了一个int
变量如下:
register int count;
当一个变量被声明为register
,它的分配将在我的计算机运行的处理器上完成.
我的问题是,有多少个处理器寄存器,这些寄存器的大小是多少?
1> Lightness Ra..:
当一个变量被声明为寄存器时,它的分配将在我的计算机运行的处理器中完成.
这是几十年前的古老知识.如今,register
C中的关键字是一个很大程度上被忽略的提示,而在C++中,它几乎没有任何内容; 从C++ 17起,你甚至不允许再写它(它是"未使用和保留").
自20世纪90年代以来的编译器足够聪明,可以决定放置(或不放置!)数据的位置,并且它们或多或少地忽略了您更清楚的坚持(除非您有非常具体的硬件要求,无论如何都需要更具体的代码).
不要试图将物理因素泄漏到您的代码库中,只需编写描述程序语义的优秀代码,记住C++和(在较小程度上)C是抽象,而不是机器指令的一对一映射.
至于存在多少处理器寄存器以及具有多大的尺寸,这完全取决于您拥有的处理器.你可以从它的数据表中找到,如果你真的很好奇.