网站域名云服务器是什么,外链发布,wordpress主题2zzt,网站锚文本与标签文章目录 1.概念2. C为什么支持函数重载#xff1f; 1.概念
C允许功能类似的同名函数出现#xff0c;只要形参列表中的参数个数、类型、类型顺序不同#xff0c;满足这三个条件中任意一个则构成函数重载#xff0c;函数重载常用来处理实现功能类似数据类型不同的问题。
/… 文章目录 1.概念2. C为什么支持函数重载 1.概念
C允许功能类似的同名函数出现只要形参列表中的参数个数、类型、类型顺序不同满足这三个条件中任意一个则构成函数重载函数重载常用来处理实现功能类似数据类型不同的问题。
// 1.参数类型不同
int Add(int x, int y) {return x y;
}double Add(double x, double y) {return x y;
}// 2.参数个数不同
int Fun() {
}int Fun(int x) {
}// 3.参数类型顺序不同
void Test(int a, double b) {
}void Test(double a, int b) {
}2. C为什么支持函数重载
C/C程序要运行起来需要经历以下几个阶段预处理、编译、汇编、链接。在链接阶段链接器会在汇编阶段产生的符号表中寻找函数的地址然后将这个函数与其地址链接在一起那么链接时链接器会使用什么函数名去找该函数的地址呢
C支持函数重载的关键在于编译时拥有独特的函数名修饰规则编译器不同规则就不同比如Linux下g编译器与Windows下的vs编译器的修饰规则就不同。vs编译器的修饰规则较为复杂g的修饰规则更清晰根据函数参数信息修饰。C语言编译器是没有函数名修饰规则的同名函数没法区分。