导航

« 由Jscript中比较大小想起的一个问题Programming with pcap【转载】 »

链接指示符extern "C"的使用

如果你希望在你的C++程序中调用C代码写的函数,那么你必须在你的函数调用之前告诉编译器:我要使用C代码写的函数了.
链接指示符(linkage directive)extern "C"的作用就是完成这个功能的,它有两种存在形式:一、 单一语句形式(single statement);二、复合语句形式(compound statement)。
// 单一语句形式的链接指示符

extern "C" int math(int);

// 复合语句形式的链接指示符

extern "C" {
int math(int);
int copy(const char*);
}

// 复合语句形式的链接指示符

extern "C" {
#include <math.h>
}

链接指示符不能出现在函数体中,如下就是错误的:

int main()
{
extern "C" double sqrt( double ); //:错误
... ...
return 0;
}

必须把extern这句话放在main()之外。

链接指示符不只是链接C的,还可以是其他语言如:extern "Ada"可以用来声明是用Ada语言写的函数;extern "FORTRAN"用来声明是用FORTRAN 语言写的函数等等。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By SunK

Copyright 2005-2006 sunk.cn 蜀ICP备06007105号