参考了网上资料总结一下
1.extern 只是声明,并不是定义,没有分配内存空间。
2.标有 extern 是告诉编译器被修饰的可以在本模块或外部模块使用,相反 static 只能本模块使用
3.extern C 结果:实现C++与C及其它语言的混合编程。
4.extern C 原因:C++有重载的概念,采用了mangled name的机制,给每一个重载版本生成不同名字,一般是函数名加上类型名。如void foo( int x, int y );可能在C下生成_foo,在C++下生成_foo_int_int
5.用法:
(1)在C++中引用C语言中的函数和变量,在C++包含C语言头文件时包上
如cpp中
extern "C"
{
#include "cExample.h" //c head file
}
....
(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern "C",但是在C语言中不能直接引用声明了extern "C"的该头文件,应该仅将C文件中将C++中定义的extern "C"函数声明为extern类型。
如cpp头文件
#ifndef CPP_EXAMPLE_H
#define CPP_EXAMPLE_H
extern "C" int add( int x, int y );
#endif
c实现文件,注意不能#include "cExample.h"
extern int add( int x, int y );
......
分享到:
相关推荐
extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解extern用法详解...
const,extern,static,volatile的使用
详细介绍extern "C"的用法,有可运行的demo说明。可以深入掌握c与c++组合开发注意事项
extern的用法,以及自己测试extern的几个程序
Extern_C,讲述extern的用法,和要注意的事项
extern C 对你会有帮助的!!!
iOS extern使用教程
关于extern C 的超级详解。解决以后所有包含extern C 的代码。
C语言中extern用法总结 比较短小的总结 但已经比较详尽了
使用extern "C"改善显式调用dll的例子
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义
本文主要介绍了C+中extern的用法,希望对你的学习有所帮助。
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。
extern_volatile等修饰符的用法
本文组要讲述了extern在C++中的作用,与在C中的作用相区分,帮助大家更好的理解。
extern 'C' 详解
const extern static volatile 小结
本文详细说明了extern和static的详细用法,看完之后您不会再对这两个东西糊涂了。
用一个简单C++代码示例来说明extern用法;
闪烁应用程序窗体,不用timer控件,C#源代码[DllImport("User32")] public static extern bool FlashWindow(IntPtr hWnd, bool bInvert); try { int MyTimes = 50; int MyTime = 50; for (int MyCount = 0; ...