我看过代码,其中带有 register 关键字的变量通过引用传递给函数。
版本 1:
inline static void swap(register int &a, register int &b)
{
register int t = a;
a = b;
b = t;
}
版本 2:
inline static void swap(register int a, register int b)
{
register int t = a;
a = b;
b = t;
}
两个版本有什么区别?
据我了解,a和b保存在寄存器中,因此引用运算符不应该有任何影响,因为对这些寄存器中的值所做的更改应该在调用者-被调用者边界上持续存在,而不使用引用运算符。