抱歉,如果我的口音受伤
在C编程中,您可以声明如下函数: dennis ritche第2版第84页
f(register unsigned m,register long n)
大多数书都说函数参数的默认存储类型最好是register
。
为什么这样?有什么需要?
回答跟随编译器使用cpu寄存器但
使用寄存器类型
时,我没有看到执行速度有任何差异任何人都可以详细解释为什么以及何时何地在C编程中使用寄存器?
感谢
答案 0 :(得分:6)
我有兴趣看看哪些书说这个。
说实话,在这一点上编译器技术的状态,几乎从来没有任何用于使用register
修饰符声明某些内容的用法。事实上,许多编译器只会抛弃它,并做任何他们想做的事情。关键在于,这在架构,编译器之间变化很大,并且还受到编译器完成的其他优化的影响。因此,选择是否将某些内容存储在寄存器中是最好留给编译器的选择,register
修饰符的使用通常被认为是一种古老的反模式。
编辑:我错误地记得register
是一个限定符(无论如何都不符合使用类型限定符,所以我应该知道),修复...