重载

本文详细介绍了函数重载的概念,包括重载的形式、合法与非法重载的区别,以及如何通过参数的数量、类型和顺序来实现函数的选择。此外,还讨论了C语言中如何取消重载以实现C与C++的混合编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重载:相同作用域中,函数名相同,参数不同,则称之为重载(又称函数静态多态性)

重载的几种形式:1.参数的数量不同:void(int a)   void(int a,int b)

2.参数的类型不同:void(int a)   void(double a)

3.参数的顺序不同:void(int a,int b)   void(int b,int a)

4.参数的数量与类型均不同:void(int a)   void(double a,double b)

调用参数时,编译器通过参数数量,类型以及顺序的不同来确定相应的函数

注:合法的重载:int abs(int i)

long abs(long i)

double abs(double i)

    非法的重载:int abs(int i)

long abs(int i)

double abs(int i)

函数名相同,参数类型与数量均相同,则为非法重载,编译器会报告“语法错误”

注:在重载时,编译器会自动给每一个重载的函数后面加一个后缀即起一个新的名字来记录函数,即为名字改编(name managling)

C中不存在重载,因此为了使的C与C++的混合编程,则使用extern “C”来取消重载,使的函数无法重载,若发生重载,编译器会报告错误

extern “C” 返回类型  函数名()

若使用的函数特别多的情况下,为了防止代码过于累赘,则采用在头文件中使用#ifdef _cpluscplus以及#endef来进行所有函数的取消重载

#ifdef _cplusplus

extern “C” 

{

#endif

函数

函数

......

#ifdef _cplusplus

}

#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值