TA的每日心情 | 怒 2014-12-12 07:01 |
---|
签到天数: 8 天 [LV.3]偶尔看看II
逆向联盟VIP会员
- 积分
- 344
|
在 C++ 程序中调用被C编译器编译后的函数,为什么要加extern "c" ?
外部函数就是可以被其他源文件调用的函数,定义外部函数时,使用关键字 extern 进行修饰。
在使用一个外部函数时,要先用 extern 生命所用的函数是外部函数 。
例如函数头可以写成下面的形式:
extern int Add(int iNun1,int iNum2);
这样,函数 Add 就可以被其他源文件调用进行家访运算。
C++ 支持函数重载,而C语言不支持函数重载,函数被C++ 编译后,在库中的名称与C语言不同,
假设某个函数原型为:
void foo(int x,int y);
该函数被C编译后,在库中的名称为_foo ,而c++编译器则会生成像 _foo_int_int 之类的名称,
C++ 提供了C链接交换的指定符号 extern "c" 来解决名称匹配问题。
C语言函数不仅仅可以被C函数调用,其他语言也可以通过一定的方式来进行调用C函数,足可见C函数得可用性。
|
|