函数重载的定义:
是函数的一种特殊形式,C++允许在同一作用域中声明几个功能相似的同名函数,这些同名函数的形参列表(参数个数 或类型或顺序)必须不同,常用来处理实现功能相似数据类型不同的问题。
- 返回值相同
- 函数名相同
我们需要搞清楚为什么C语言不支持函数重载,而C++支持???
命名修饰规则
运行需要经过下面4步:
1.预处理:去注释、条件编译、宏替换、头文件的包含
2.编译:生成汇编代码
3.汇编:生成二进制代码、生成符号表
4.链接:合并符号表
C语言的名字修饰规则(_Add)
#include<stdio.h>
int Add(int a, int b);
int main()
{
Add(1, 2);
return 0;
}
C++的名字修饰规则
#include<iostream>
using namespace std;
int Add(int a, int b);
int main()
{
Add(1, 2);
return 0;
}
Linux的名字修饰规则
extern "C"
在C++中使某些函数按照C语言的编程风格来编译
extern "C" int Add(int left, int right);