码迷,mamicode.com
首页 > 编程语言 > 详细

为什么C不支持重载,而C++支持重载?

时间:2014-06-27 15:10:57      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:style   strong   文件      c++   一个   

C语言不支持重载,C++可以支持重载。这是什么原因呢?

在编译过程中需要将obj文件进行link,link负责将每一个obj中的符号查找表中的东西转换为一个地址,这个地址就是最后编译完成后的exe文件的函数对应这个函数的入口地址。

 

一个简单函数:

  int Test();

按C语言方式的命名方式(_cdecl):_Test

按C++方式的命名(_stdcall)  :?Test@@YAHXZ  

 ? 和 @@YAH 是用来表示调用协议的, 其中的H为返回值是int

 X表示没有参数。

 Z是函数名称结束修饰

通过看在编译器转换成的函数名字就可以明白,为什么C++支持重载,因为C++是将参数加入进去的,而C则没有,所以不支持重载。

为什么C不支持重载,而C++支持重载?,布布扣,bubuko.com

为什么C不支持重载,而C++支持重载?

标签:style   strong   文件      c++   一个   

原文地址:http://www.cnblogs.com/wang-can/p/3810364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!