代码之家  ›  专栏  ›  技术社区  ›  Greg

与本机C++库相比,使用“extern”C“的C库有哪些缺点?[已关闭]

c++
  •  1
  • Greg  · 技术社区  · 8 年前

    使用C++库和C库是否更好?如果是,为什么?

    在C++中使用C库时,是否会遇到任何常见问题?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Wagner Patriota    8 年前

    问题是你假设这个句子是真的。但事实并非如此。使用C++或C库没有问题/区别。

    这个 extern "C" 有一个不同的目的:当你用C++编译器导出一个函数时,编译器会“破坏”导出的函数名。这样地:

    int f (void) { return 1; }
    

    将实际编译为:

    int __f_v (void) { return 1; }
    

    这就是C++的工作方式。如果希望导出相同的函数而不损坏(例如,从C库中使用),则需要执行以下操作:

    extern "C" int f (void) { return 1; }