滴水逆向联盟

标题: 如何调用编译后的函数 [打印本页]

作者: 夺命书生    时间: 2014-11-19 05:41
标题: 如何调用编译后的函数
在 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函数得可用性。


作者: 大禹治水    时间: 2014-11-19 06:42
对新手还是很有用的。




欢迎光临 滴水逆向联盟 (http://dtdebug.com/) Powered by Discuz! X3.2