我写了一个C ++库来做一些数值分析。 除了C ++ API外,在库中包含C API接口是否具有编程优势?

这不是stackoverflow的适当问题吗,我可以删除它。

===============>>#1 票数:4

C ++上的C语言:稳定的定义明确的ABI。

有多个C ++ ABI(最重要的是MSVC和Itanium),并且每个标准库实现(例如Dirkumware,libstd ++或libc ++)都不兼容。 因此,C ++代码与C ++代码正确链接的唯一方法是使用相同的编译器(或使用共享ABI的编译器)以及相同的标准库实现进行编译。

但是,C是不同的。 由gcc编译的C与C编译的clang可以平滑集成...但是它远远超出了。 它可以与C ++,Python,Haskell,Java,Rust,Lua,Perl等……顺利地集成在一起。

那么,与C ++相比,C API有什么好处? 在阳光下几乎可以与任何编程语言顺利集成。

===============>>#2 票数:2

是的,这里有一个:如果您想从C代码中调用函数,则需要一个C API。 与C API一样,C API也可以由您的C ++代码(外部的“ C” {...})调用,而C ++ API则不然,C ++ API不能由您的C代码调用。

===============>>#3 票数:0

没有包含C API的程序优势。

猜猜这取决于营销以及客户的需求。

  ask by rhody translate from so

未解决问题?本站智能推荐:

2回复

解决隐含的想法包含在C,C ++中

我刚想出了一个解决问题的想法并想分享它。 对不起,如果太平庸。 因此,我正在审查的一个大型C ++项目包含许多依赖于其他包含但未包含所需包含的符号的包含。 构建过程中的任何轻微更改都会导致“缺少符号”失败。 因此,为了立即检查所有自包含的包含,我搜索所有* .h,动态创建一个cp
4回复

是否可以在C程序中包含C ++库?

我正在与一个承包商合作,后者使用C ++为我们开发一个库。 我想知道是否可以在C程序中使用该库。 我正在使用Gcc作为编译器。
2回复

C使用包含在文件中的变量

我目前正在谷歌上搜索,但是我不知道该怎么写。 我怀疑有人会指出一个重复的问题。 但是...如果我有这样的文件 parent.h: 以及下面的源文件,该文件在上面通过其头文件进行调用: child.c: 现在,这是一个简化的示例,当前我正在使用C ++,并且正在创建
5回复

外部“ C”是否应包含C ++函数的声明或定义?

我在一个cpp文件中看到, external "C" {...}包含了几个函数的定义。 从https://isocpp.org/wiki/faq/mixing-c-and-cpp ,我想在cpp文件中使用extern "C"的目的是使随附的C ++函数可用于C程序。 链接中的示例显示
2回复

OpenCL头包含在C ++中的相对路径问题

我试图在Eclipse CTD上运行OpenCL C ++示例(在Mac上)包含OpenCL头,如下所示: 该文件存在于我的系统上(OpenCL sdk默认安装在Mac上)但不在OpenCL目录中(实际路径: /System/Library/Frameworks/OpenCL.frame
1回复

包含在Android JNI和iOS中的C / C ++应用程序示例

我正在寻找一个使用相同代码通过JNI和iOS在Android上运行的C / C ++应用示例 理想情况下,我可以选择某种开源github项目,或者可能是本教程的一部分 希望集体意识至少可以在这里指导我正确的方向。 我们可以问例子吗?
7回复

C / C ++,您可以#将文件包含在字符串文字中吗? [重复]

这个问题已经在这里有了答案 : 将C程序中的文本文件“ #include”作为char [] (16个答案) 5年前关闭。 我有一个C ++源文
3回复

C方法可能无法包含在C ++项目中吗?

我知道我可以使用extern "C"东西在C ++项目中包含C方法。 现在让我们假设我正在考虑创建一个C ++项目,该项目将使用很多C方法,这些方法来自我自己开发的库以及我正在开发其详细信息和编译规范的其他人/公司创建的库根本不知道。 是否有某些这种C库方法,其编译和配置详细信息未知,而
1回复

确定所有所需的头文件是否包含在另一个头文件中

假设我有一个头文件,应该包含另一个头文件,但不包括(出于某种原因)。 例如: myHeader.h 此错误很容易隐藏在.c / .cpp文件中。 例如这样的: someFile.cpp someFile.cpp会很好地编译,并隐藏我错过了在myHeader.h中包
2回复

如何定义编译器警告和错误,它们是否包含在标准中[关闭]

作为关于这个问题的一个人 。 编译器错误和警告是否已指定标准,如果不是,为什么不。 我已经用gcc和vs编写了很长时间,并且学习警告和错误试图告诉你的不是统一的体验。 使用像.net和java这样的语言,其中一个实体具有总体控制权,而不是一个有趣的问题。 在标准警告和错误以及级别分类中是