以下这段程序因为函数重名,是不正确的
是对还是错,为什么
什么是函数重名
C语言不对。
C++这是正确的啊,函数名重载,意思就是函数名是一样的,参数列表不一样,可以通过参数来判断是具体执行哪个函数
本质上是因为C语言编译后每个函数都会有一个符号,C语言中这个符号就是函数名,而符号是不能重复的。c++可以重载是因为对函数名进行了名称修饰,从而让函数的不同重载有了不同的符号。
举个例子来说
void func(int x,int y);
C语言编译之后函数名解析为_func,这个是唯一的,但是c++编译之后会变成_func_int_int,如果参数变成float,C语言还是_func,但是c++会变成_func_float_float.这里的解析名是举例,具体编译之后函数名是什么,是有一套规则的,不同的编译器结果可能会不一样。
下面这个就是C++下面vs编译之后生成的函数名