c++ - 处理器寄存器的大小是多少以及有多少个处理器寄存器?

标签 c++ c

我声明了一个 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/

相关文章:

c - 使用 fscanf 而不从文件中获取输入

c - 链表 - 先前节点中的数据正在被覆盖

c++ - 字符串复制错误c++

c++ - char数组声明中字符串文字周围的大括号有效吗? (例如 char s[] = {"Hello World"})

c++ - boost::asio UDP 广播

c - 使用 int 类型指针取消引用 char 值时获取垃圾

c++ - 将一个对象添加到另一个对象 C++

c++ - Argument-Dependent Lookup 是否在正常范围查找之前进行?

用于阅读 doc、docx、pdf 的 C 程序

c++ - 将二叉树保存到文件