【发布时间】:2017-09-08 12:40:49
【问题描述】:
我读过
- When to use extern "C" in C++?
- In C++ source, what is the effect of extern "C"?
- Why do we need extern "C"{ #include <foo.h> } in C++?
但是,我还没有找到一个问题的答案:使用extern "C"(例如,在尽可能多的功能上)是否存在(将来可能)不利之处?
更具体地说:在接口只使用C功能的函数中添加extern "C"有什么缺点吗?换句话说,那些不使用@k-five 的答案中列出的功能的那些?
【问题讨论】:
-
extern "C"是有目的的。你的问题的答案取决于你假设它的利弊的背景。 -
缺点是不能使用 C++ 的东西,比如重载或成员函数。而且你必须编写更多没有真正做任何事情的代码。
-
尽管它的名字,这与 C 语言/标准无关。
-
有没有提到如何在没有它的情况下调用 C-ABI 函数?
-
“劣势”是什么意思?如果你买了一辆自行车,你不能用它运输一架大钢琴是不是一个缺点?那不是自行车的用途!不要用螺丝刀敲钉子。