register
关键字在C语言中有什么作用?我读到过它是用于优化的,但在任何标准中都没有明确的定义。它是否仍然相关?如果是,您将在什么时候使用它?
发布于 2009-02-23 16:14:36
这是对编译器的一个提示,该变量将被大量使用,如果可能,您建议将其保存在处理器寄存器中。
大多数现代编译器都是自动执行的,而且比我们人类更擅长挑选它们。
发布于 2009-02-23 18:01:44
令我惊讶的是,没有人提到你不能接受寄存器变量的地址,即使编译器决定将变量保存在内存中而不是寄存器中。
因此,使用register
什么也得不到(不管怎样,编译器将自己决定将变量放在哪里)并丢失&
运算符--没有理由使用它。
发布于 2009-02-23 16:14:15
它告诉编译器尝试使用CPU寄存器而不是RAM来存储变量。寄存器位于CPU中,访问速度比RAM快得多。但这只是对编译器的一个建议,它可能不会坚持到底。
https://stackoverflow.com/questions/578202
复制相似问题