抱歉,如果我的口音刺痛了
在C编程中,你可以这样声明一个函数: 丹尼斯·里奇第二版第 84 页
f(register unsigned m,register long n)
大部分书上都说函数参数的默认存储类型最好是
register
。
为什么会这样?需要什么?
随后的答案编译器将它们保留在CPU寄存器中但是
使用寄存器类型时,我没有看到执行速度有任何差异
谁能详细解释一下为什么、何时何地在 C 编程中使用寄存器?
谢谢
我有兴趣看看哪些书是这么说的。
说实话,就目前的编译器技术而言,使用
register
修饰符声明某些内容几乎没有任何用处。 事实上,许多编译器会简单地把它扔掉,然后做他们想做的事。 关键是,这在不同的体系结构、编译器之间差异很大,并且还受到编译器所做的其他优化类型的影响。 因此,是否将某些内容存储在寄存器中的选择最好留给编译器,并且使用 register
修饰符通常被认为是一种过时的反模式。
编辑:我错误地记得
register
是一个限定符(无论如何,它与类型限定符的使用不符,所以我应该知道),已修复...