1

如果这是一个基本问题,我很抱歉(我是 C/C++ 新手,但我对如何获得答案有点困惑 。stxxl是一个 C++ 库,但我的一些代码是 C 语言。我知道c++ 可以使用 c 代码(我的 c 代码嵌入在 c++ 中),但它是否可以反过来工作,所以 c 可以运行 c++ 代码?

他们的网站只提到了 c++,但我想知道是否可以做一些特别的事情来在 c 中运行 c++ 库?

抱歉,我读过的书都是关于在 c++ 中使用 c 代码的,而我读过的 c 书是在 c++ 出现之前写的。现在我的 c 函数正在向使用 c++ 库的 c++ 代码发送数据,然后将结果发回,所以我想如果我切断中间人(c++),我想测试性能。

4

2 回答 2

1

这是一个可以帮助您的链接: 如何混合 C 和 C++

于 2012-05-18T00:39:49.613 回答
1

只有当 C++ 库被设计为从 C 中使用时,您才能从 C 链接到 C++ 库。具体来说,库提供的函数需要使用extern "C" {}块导出以避免名称修改,并且接口应该以某种方式设计可以从普通 C 中使用(即没有类或成员函数,只有无功能的结构和普通函数)。

值得一提的是,您可以使用 C++ 编译器编译您的 C 代码,而且大部分情况下都可以。这使您可以假装您的 C 代码是 C++ 代码,并且可以自由地混合通过 C++ 特定接口提供的功能。

于 2012-05-18T00:40:00.327 回答