-
函数重载:同一个函数,参数个数不一样,或者参数类型不一样,参数顺序不同
- c语言不支持函数重载
- c++支持
C++会默认会函数名进行修饰(name mangling技术)
而c语言不会
不同编译器生成的也不同
例如:
//func_void
void func()
{
cout << "func()" << endl;
}
//func_int
void func(int a)
{
cout << "func(int):" <<a<< endl;
}
//func_long
void func(long a)
{
cout << "func(long):" << a << endl;
}
//func_double
void func(double a)
{
cout << "func(double):" << a << endl;
}
编译器可能会将函数名修饰成这样:
sub_401000
sub_401030
sub_401070
sub_4010B0
也可能修改成这样:
aFunc1
aFunc1Int
aFunc1Long
aFunc1Double
也可能会修饰成这样
func_void
func_int
func_long
func_double
无论修改成什么样,都会修饰成四个不一样的函数名字,避免二义性,防止报错