如果您想将此问题标记为重复,请注意我已经阅读了有关此主题的问题,但我仍然不清楚.我的印象是,当包含C头并使用C代码链接时使用此构造(如果我错了,请纠正我).这是否意味着在不处理目标文件时我永远不必使用"extern C"?如果我错了,为什么旧C代码不能编译为C++,因为它最有可能是合法的c ++代码?
我对它有点不确定因为我发誓我在使用C++中的旧C 源代码时遇到过这种情况,其中链接器错误仅通过"extern C"解决,并且库头确实有
#ifdef __cplusplus
#extern "C"{
#endif
//......
#ifdef _cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
在他们旁边.
编辑:很抱歉不清楚,但我想问的是,只有在包含C头并链接到预先存在的C对象文件时才需要"extern C"吗?如果它是真的,(并且它似乎从下面的评论来判断),为什么库标题周围有"extern C"子句,为什么它们不能被包含并编译为C++?
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |