C/C++教程

(C++)extern “C” 和 extern “C++”——语言链接性

本文主要是介绍(C++)extern “C” 和 extern “C++”——语言链接性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

extern "C" 和 extern "C++" 的区别,首先我们先认识一个概念——语言的链接性。

C语言链接性:在C语言中,一个名称只对应一个函数,因此中很容易实现。为满足内部需要,C语言编译器可能将spiff这同样的函数名翻译为_spiff。

C++语言链接性:在C++中,同一个名称可能对应多个函数,必须将这些函数翻译为不同的符号名称。因此C++编译器执行名称矫正或名称修饰,为重载函数生成不同的符号名称。
eg:
spiff(int)转换为_spiff_i
spiff(double, double)转换为_spiff_d_d;

所以为了解决在C++程序中使用C库中预编译的函数,我们可以使用extern "C" 或 extern "C++"。

extern "C" void spiff(int);    //原型使用C语言链接性
extern  void spiff(int); 或者  extern "C++" void spiff(int);    //原型使用C++语言链接性

这篇关于(C++)extern “C” 和 extern “C++”——语言链接性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!