extern "C"理解
来源:互联网 发布:java 线程池 demo 编辑:程序博客网 时间:2024/04/29 18:28
在C++中引用C编译器编译过的函数的时候就会用到:extern "C"这个关键字.如下就是在C++环境中引用C
函数的例子:
***************************************************Begin*******************************************************
/* c语言头文件:cExample.h */
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
extern int add(int x,int y);
#endif
/* c语言实现文件:cExample.c */
#i nclude "cExample.h"
int add( int x, int y )
{
return x + y;
}
// c++实现文件,调用add:cppFile.cpp
extern "C"
{
#i nclude "cExample.h"
}
int main(int argc, char* argv[])
{
add(2,3);
return 0;
}
如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或声明接口函数时,应加extern "C" { }。
***************************************************End*********************************************************
造成这种现象的原因是C语言和C++的编译器不同,众所周知,C++支持函数重栽,C不支持函数重栽,而经过
编译的函数名称是唯一的,为了适应这种需求,C++编译器会在函数名中加入一些新的信息,比如同样对 int Test()
函数进行编译,C生成的新名称是_test,而C++编译器生成的新名称是_Test_int.
基于这种原因,在进行C和C++混合编程的时候,一定要加上extern "C",通过C编译器的方式编译引用文件,从而
找到你要调用的函数,否则编译出错.
- extern "C"理解
- 深入理解extern "C"
- 深入理解extern "C"
- 理解extern "C"
- 深入理解extern "C"
- extern "C"--理解
- 理解extern "C"
- extern "C"的理解
- 简单理解extern "C"
- extern "C"的理解
- 深入理解extern "C"
- extern "C"的理解
- 我来理解extern "C"
- 我来理解extern "C"
- 我来理解extern "C"
- 关于extern “C”的理解
- 如何理解DLL中的extern "C"
- C/C++ 中 extern 的个人理解
- 关于安全的ActiveX控件的编写,纠正大家一点错误,包括MSDN上也有问题
- School VS College
- JAVA程序让手机可透视拍照
- 谈谈Listener Servlet的应用
- c语言socket编程指南
- extern "C"理解
- Serial Communication
- Visual C++(包含Windows API和MFC)开发中常见问题的答案
- 是否在任何方法中都能使用super和this?
- Berkeley DB使用简介
- 如何从开发人员走向软件架构师
- 关于如何访问interface中定义的变量
- Dijkstra 最短路径算法的一种高效率实现
- 数据库连接字符串大全