我必须将一些C/C++代码转换为Java.我的C++非常生疏.
在.h文件中,我有以下内容:
#ifdef __cplusplus
extern "C" {
#endif
/* tons of declarations */
#ifdef __cplusplus
} /* extern C */
#endif
Run Code Online (Sandbox Code Playgroud)
有什么用extern "C"?这是什么意思?它告诉编译器相应的代码应该被解释为纯C而不是C++吗?
编辑
谢谢你到目前为止的答案.我必须转换的代码的历史是,它似乎首先用C语言编写,然后其余部分用C++编写.所以我的头文件似乎对应于'旧的'C代码.
我将此代码转换为public final class静态方法和属性.没有压倒一切.
它告诉编译器函数签名应该与C兼容。名称修饰在 C 和 C++ 中是不同的(即 C++ 支持方法重载,而 C 不支持),因此为了使某些函数调用(即某些 DLL 动态调用)与 C 签名兼容,您可以extern C在 C++ 代码中使用。
查看这个 StackOverflow 问题,了解有关该主题的精彩解释。
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |