首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

extern "C"解决方法

2012-02-27 
extern C谁能帮我详细的讲解一下这个标识符,在函数名前面声明这个标识符,在c++中,是指该函数以c语言方式

extern "C"
谁能帮我详细的讲解一下这个标识符,在函数名前面声明这个标识符,在c++中,是指该函数以c语言方式进行编译吧?因此该函数就不再支持函数重载了,编译器不会对该函数名进行改变。
extern "C" void Func(int a)
{
cout<<a<<endl;
}

extern "C" void Func(float a)
{
cout<<a<<endl;
}
这段函数在c++中就无法通过编译了,证明了我的观点。
那么请问这个标识符的用途在哪些方面呢?

[解决办法]
http://www.cppblog.com/Macaulish/archive/2008/06/17/53689.html
[解决办法]
extern "C" 意思是用 C的符号命名方法来命名 当行的那个符号(比方函数、可供其他原文件、程序使用的变量)。

大面积的extern "C" 
{
}
范围内的全部符号用 C的符号命名方法来。


c的符号重命名只包含调用方式,stdcall是 函数名@参数数量的格式, _cdecl 是单独的符号名。__fastcall的类型是 @函数名@参数数量 的格式。 c导出的变量名是 单独的符号名 
c++的符号命名方法类似于乱码,但特殊的是函数的符号名中除了调用方式还包含了 函数参数数量和调用方式,因此符号名用来实现重载之类的机制。

热点排行