浅谈extern(C++)

Posted 每天告诉自己要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈extern(C++)相关的知识,希望对你有一定的参考价值。

首先要知道使用场景:在C++的程序中想要调用C语言的程序中函数
因为C++是有函数重载的,而C语言是没有函数重载的
而函数重载,编译器会自动改变函数名字,比如

void add(int a, int b);
比如这个函数,编译器可能会自动改变函数名字为:_addv,因此如果此时要使用别的源文件或者头文件中的C语言函数,则会报错:无法连接的外部命令

因此在这种使用场景下,不能够像普通C++程序一样,只包括了那个想要用的函数的头文件就可以了。
这里不能包括那个函数的头文件,应该直接用 extern void add (int a, int b);

以上是关于浅谈extern(C++)的主要内容,如果未能解决你的问题,请参考以下文章

extern c

使用 extern "C" 时 C++ 代码中的函数重载

尝试使用 c++ .so 库编译 c 代码,带有 extern "C" ... 段

extern “C”的作用详解

C++初阶第二篇——初始C++(详细讲解extern “C”)

在 C# CLR 中学习 C++ 之了解 extern