C++:为什么在C++中有函数重载而在C语言没有?

"本文介绍了C++和C语言中函数重载的区别,通过实例展示了C++如何通过函数修饰规则支持函数重载,而C语言则不支持。同时,解释了extern"C"的作用,它是如何解决C++函数在C语言中调用的问题,允许C和C++混合编程。"

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


前言

一个程序要运行起来,需要经历以下几个阶段:
1.预处理:头文件展开+宏替换+去掉注释+条件编译
2.编译:检查语法,生成汇编代码
3.汇编:把汇编代码转换成二进制机器指令
4.链接:链接到一起生成可执行程序
如果一个函数在头文件中声明,在源文件中定义,那么在编译时,是找不到函数的地址的
但是链接就是专门处理这种问题的,链接器在看到.o文件(编译后产生的文件)在调用函数,没有找到函数的地址,就会到放函数的源代码编译后产生的.o文件的符号表中找,然后链接到一起。
每个编译器都有自己的函数名修饰规则


提示:windows下vs编译器对函数名修饰规则太复杂,在linux下g++简单明了,所以本文用linux做演示

一、C++为什么可以函数重载?

在这里插入图片描述

在g++编译器下编译的结果为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值