通过引用传递时,是否应在函数中保持相同的变量名

When passing by reference, should you keep the same variable name in the function?

本文关键字:函数 变量名 引用 是否      更新时间:2023-10-16

通过引用传递变量时,是否应在函数中保持相同的变量名?例如

int main()
{ 
const int Players = 1000;
array <double, Players> PlayerStrengths;
}
template <typename T, size_t Size>
void GeneratePlayerStrengths(array <T, Size>& _PlayerStrengths) 
{
//-- Logic here --
}

通过引用传递变量时,是否应在函数中保持相同的变量名?

在一般情况下不会。或者至少没有理由让他们这么做。

事实上,我建议你可能想从另一个角度来处理这个问题,比如

"调用函数是否应使用与它正在调用的函数中的参数名称?"

在这种情况下,答案是可能

例如,如果发送消息的api使用名为msg的参数,则可能希望调用函数使用相同的变量名

然而,重要的规则是,您正在调用的函数中的变量名在函数的上下文中应该是有意义的,并且调用函数中的可变名称在该上下文中应该有意义。

例如:

int SendMsg( Msg& msgToSend)
{
// Serialise and transmit message
  return OK;
}

void GenerateAndSendShutdown (void)
{
   //You could call this msgToSend, but it wouldnt make the code any clearer
   Msg shutdownCmd = "Shutdown";
   SendMsg (shutdownCmd);
}

在你的特殊情况下,我想说,如果他们是一样的,那是有道理的。

否。他们可能有不同的名字。

此外,如果名称以下划线和大写字母开头,则行为是未定义的。不要那样做。

传递的变量有两种类型:形式参数(视为函数参数),例如void func(int&formalarg)和实际参数(在调用函数时传递的参数),如func(actularg),其中actularg可能是整数类型,也可能不是整数类型。如果类型不同,则必须有从其他类型的实际参数到int(预期的形式参数类型)的强制转换运算符。如果两种类型相同,为了程序的可读性,如果遵循有意义的命名约定,保持相同的名称会使程序更优雅,更易于理解其用途。希望这能有所帮助。