打印

在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?

[复制链接]
878|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
daily媛媛|  楼主 | 2018-12-26 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
linqing171| | 2018-12-28 21:54 | 只看该作者
因为编译完了就是二进制了,c和c++的参数调用的规则不一样。
调用一个函数,除了函数的地址,还有就是参数的传递方式和堆栈的回收方式。
比如: this指针用哪个寄存器传,变量是用寄存器传还是堆栈传,是从左往右挨个传,还是从右往左挨个传;堆栈谁负责弹出来,是调用方还是被调用方?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

38

帖子

0

粉丝