更新时间:2023-02-15 20:18:21
为externC使得名未进行重整。
extern "C" makes names not mangled.
它适用于:
我们需要在C中使用一些C ++库
We need to use some C library in C++
extern "C" int foo(int);
我们需要输出一些C ++ code到C
We need export some C++ code to C
extern "C" int foo(int) { something; }
我们需要共享库来解决符号的能力 - 所以我们需要摆脱重整
We need an ability to resolve symbol in shared library -- so we need to get rid mangling
extern "C" int foo(int) { something; }
///
typedef int (*foo_type)(int);
foo_type f = (foo_type)dlsym(handle,"foo")