我声明了一个 int
变量,如下所示:
register int count;
当变量被声明为register
时,它的分配将在我的计算机运行的处理器中完成。
我的问题是,有多少个处理器寄存器,这些寄存器的大小是多少?
最佳答案
When a variable is declared as register, its allocation would be done in the processor by which my computer is running.
这是几十年前的古老知识。如今,C 中的关键字 register
是一个很大程度上被忽略的提示,而在 C++ 中它实际上什么也不做;从 C++17 开始,你甚至不再允许编写它(它是“未使用和保留的”)。
自 20 世纪 90 年代以来的编译器足够聪明,可以决定在哪里放置(或不放置!)数据,并且它们或多或少地忽略了您坚持认为您更了解(除非您有非常具体的硬件要求,这将需要更具体的代码无论如何)。
不要试图将物理因素泄漏到您的代码库中,只需编写描述程序语义的漂亮代码,记住 C++ 和(在较小程度上)C 都是抽象,而不是到机器指令的一对一映射。
至于存在多少处理器寄存器以及大小,这完全取决于您拥有的处理器。如果您真的很好奇,您可能可以从其数据表中找到答案。
关于c++ - 处理器寄存器的大小是多少以及有多少个处理器寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040858/