在已经是参数名称的C++函数中定义变量

Defining a variable in a C++ function that's already an argument name

本文关键字:函数 C++ 定义 变量 参数      更新时间:2023-10-16

在c++中,如果在函数体中定义了一个与函数参数同名的变量,会发生什么?

例如:

static void f(int i)
{
    int i;
    ...
}

函数内i的定义有什么作用吗?

会造成伤害吗?

有什么好的理由你能想到这样写一个函数吗?

根据c++标准

的最外层块中不能重新声明参数名函数定义不在任何处理程序的最外层块中与一个函数-try-block相关联。

在这种情况下,编译器将发出一条诊断消息。