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

Why? 在C++中调用被C编译后的函数,要在声明的前面加extern "C"

时间:2016-04-09 17:07:54      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:c语言  

在C++程序中调用被C编译器编译后的函数,为什么要在声明的前面加extern "C"?

答:c语言不支持重载,C++支持重载

为了告诉编译器这个函数是C的编译风格,所以在找这个函数的时候也要按照C的风格去找

比如:在C++中写一个add函数

      int add(int n1,  int  n2)

它找到的是?add@@YAHHH@Z

  ?函数名@@YA参数参数返回值@Z

    H代表int  M代表float

@@YA表示开始      @Z表示结束

在C语言中写一个add函数

   int add(int n1,  int  n2)

它找到的是_add


Why? 在C++中调用被C编译后的函数,要在声明的前面加extern "C"

标签:c语言  

原文地址:http://10921020.blog.51cto.com/10911020/1762075

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