LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1469|回复: 7

如何在c程序中调用c++函数?

[复制链接]
发表于 2005-11-3 13:53:34 | 显示全部楼层 |阅读模式
在c程序和c++函数中应该怎么做?
发表于 2005-11-3 14:51:25 | 显示全部楼层
看你要调的c++函数是什么样的
回复 支持 反对

使用道具 举报

发表于 2005-11-3 17:35:28 | 显示全部楼层
Post by chairman
在c程序和c++函数中应该怎么做?


一般而言,用extern "c" 修饰cpp定义的函数就可以了
回复 支持 反对

使用道具 举报

发表于 2005-11-3 18:29:24 | 显示全部楼层
似乎不行,C++支持重载,C++连接的函数存在function name mangling。(参见D&E)
Post by rickxbx
一般而言,用extern "c" 修饰cpp定义的函数就可以了

版主的作法是使指定的函数按C的方式link,取消mangling。这个函数是个C函数,不是C++函数。所以严格的讲不是在调用C++函数,而是C连接的函数。不过这个函数可以调用C++的函数。
回复 支持 反对

使用道具 举报

发表于 2005-11-3 19:12:46 | 显示全部楼层
那样的话链接时就要加上 stdc++ 的库了,还不如用 C++ 完成呢,除非 C 可以编译那个 C++ 的函数。
回复 支持 反对

使用道具 举报

发表于 2005-11-4 09:56:58 | 显示全部楼层
用C的方式再把你要调用的C++相关的东西封装一下,当然这个文件要用C++的方式编译了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-4 13:51:16 | 显示全部楼层
原来直接用g++编译就可以了。比如一个a.c的c文件,然后有一个用b.cpp生成的b.o文件。直接用g++编译就可以了。不用加别的东西
回复 支持 反对

使用道具 举报

发表于 2005-11-6 15:33:26 | 显示全部楼层
我晕,楼主应该多学学怎么提问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表