C++ extern "c "的作用

简介:

一、extern "c "的作用:用来告诉编译器,该函数是用C语言编写的. 
二、以下几种使用方式:

1.extern    "c "   void   exit(int)//包含c语言中编写的exit函数. 
2.extern    "c "  

 {

     int   printf(const   char*   ....);

     int   scanf(char   *...) ;

  ....

}//包含c语言中编写的一组函数. 
3.extern    "c "{#include    <cmath> }包含标准c库中的函数.

三、补充

1,extern可以置于变量声明前;
2,extern也可以置于函数声明前;
 通过这种行为它告诉编译器:该变量/函数的定义已经存在在某个地方了,让编译器到其他的模块去寻找它的定义。
3, extern “C” 使用extern“C”主要是因为C++语言在编译的时候为了实现多态,会将函数名和函数结合起来形成另外一种函数名(总之就是说编译后的函数名与你之前自己声明时的函数名会不一样),而C语言中无多态的概念当然也就不会有这种奇异的名字变化问题。这是问题就出现了,当你要在C++中调用C函数时,由于名字的不同,所以它会找不到所调用的这个函数的定义,因而会出错。 为了解决这一C与C++的矛盾冲突,就有了extern “C”。


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/11/16/2251304.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
存储 编译器 C语言
【C/C++ 关键字 存储类说明符 】一文带你了解C/C++ 中extern 外部声明 关键字的使用
【C/C++ 关键字 存储类说明符 】一文带你了解C/C++ 中extern 外部声明 关键字的使用
52 1
|
3月前
|
编译器 C++
面试题:C++ extern作用?
面试题:C++ extern作用?
18 0
|
5月前
|
存储 Cloud Native Linux
C++ extern关键字作用
C++ extern关键字作用
|
10月前
|
编译器 C语言 C++
C++ 中 extern 数组和指针
C++ 中 extern 数组和指针
96 0
|
编译器 C++
在 C++ 中命名 Mangling 和 extern “C”
C++ 支持函数重载,即可以有多个同名但不同参数的函数。C++ 编译器在生成目标代码时如何区分不同的函数——它通过添加有关参数的信息来更改名称。这种向函数名称添加附加信息的技术称为Name Mangling。C++ 标准没有指定任何特定的名称修改技术,因此不同的编译器可能会向函数名称附加不同的信息。 
63 0
|
人工智能 编译器 Linux
【重学C/C++系列(二)】:extern关键字用法全解析
extern 是C/C++语言中**表明全局变量或者函数作用范围(可见性)的关键字**,编译器收到extern通知,则其声明的变量或者函数可以在本模块或者其他模块使用。
【重学C/C++系列(二)】:extern关键字用法全解析
|
编译器 Linux C语言
C++学习笔记(二)——extern “C“ 用法详解
C++学习笔记(二)——extern “C“ 用法详解
C++学习笔记(二)——extern “C“ 用法详解
|
缓存 安全 编译器
C++中inline, extern, static潜在的陷阱
公司有位C++标准委员会的大佬,一年偶尔会有几次技术分享。这是其中的一次,对照着材料学习了演讲视频,以下就是这次分享的内容。 相信inline, extern, static这三个关键字对于C++程序员是非常熟悉的,但有些时候,其中隐藏的陷阱,可能会给你的程序带来一些很难诊断的问题。
|
编译器 C语言 Android开发
【C++ 语言】 C 与 C++ 兼容 ( extern "C" )(三)
【C++ 语言】 C 与 C++ 兼容 ( extern "C" )(三)
203 0
【C++ 语言】 C 与 C++ 兼容 ( extern "C" )(三)