有以下这个函数的定义:
int add(int a, int b)
{return a+a;
}
如果对这个函数进行声明,一般有以下两种写法:
int add(int a, int b);
int add(int, int);
所以我之前一直以为,函数定义中,入口参数一定要参数名,而声明中可有可无。
但其实不是这样,函数定义中的入口参数名也不一定需要(只要这个入口参数在函数中没有用到),如果add函数改写如下形式:
int add(int a, int)
{return a+a;
}
这也是对的,因为add函数中就没有用到后面一个参数,所以不需要这个参数名。其实从编译角度来看,确实不需要,形参名只是给函数中具体实现,找一个代号而已,如果没有a形参名,那么如果返回a+a呢,而b因为没有用到,所以不需要b这个代号。