温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

extern "c"的作用详解

发布时间:2020-07-23 16:03:22 来源:网络 阅读:806 作者:947154267yjn 栏目:编程语言

        extern "c"的主要作用就是为了能够正确实现C++代码调用其它C语言代码。加上extern "c"后,会指示编译器这部分代码按照C语言的风格进行编译。
         由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;C语言并不支持函数重载,因此编译C代码的函数时不会带上函数的参数类型,一般只包括函数名。


         这个功能十分有用,因为在C++出现以前,很多代码都是C语言写的,而且底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C,而extern "c"就是其中的一个策略。


   这个功能主要用在下面的情况:
   1、C++代码调用C语言代码
   2、在C++的头文件中使用
   3、在多个人协同开发时,可能会出现有人编写C代码,有人能编写C++代码,这样的情况也可以使用extern "c"。

 

     extern "c"包含双重语义,从字面上可以知道,首先,被他修饰的目标是"extern"的;其次,被他修饰的目标代码是"C"的。被extern "c"限定的函数和变量
是extern的。
     看这个例子: extern int a;   仅仅是一个变量的声明,并不是在定义变量a,也没有为a分配空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出错。
   

extern "c"使用要点:
   1、可以使单一语句。
      extern "c" double sqrt(double)
   2、可以使复合语句,相当于复合语句中的声明都加了extern "c"。
      extern "c"
      {
          double sqrt(double);l
          int min(int,int);
      }
    3、可以包含头文件,相当于头文件中的声明都加了extern "c"。
       extern "c"
       {
           #include<cmath>
       }
    4、不可以将extern "c"添加到函数内部。
    5、如果函数有多个声明,可以都加extern "c",也可以只出现在第一次声明中,后面的声明会接受第一个链接指示符的规则。

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI