`
逆风的香1314
  • 浏览: 1416511 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

extern c 是什么意思?

阅读更多
extern c 是什么意思?
#ifdef __cplusplus
extern "C" { //这是什么意思 ?????????????
#endif /* __cplusplus */
表示如果现在的编译环境是C++的话,让编译器生成C样式的函数名,也就是阻止编译器使用C++的方法进行函数名解析。
C++中因为函数可以重载:
int a(char)
int a(int)
int a(double)...
所以,在编译后的代码里,三个a()是不同的函数名如a_char_xxx,a_in_xxx,a_double_xxx等等.

要去掉后面的一大串符号只要在a()前面加上exter "C"即可

在DLL的对外接口函数中,必须用exter "C" 限制,否则,外部调用者根本不知道你的真正函数名.
1 VC6.0编译器可以按C++或C生成目标函数. 两者生成的目标符号表
并不一样. C方式是与原来标准C相兼容.
2 在DLL中的接口函数一般应按C方式编译而成. extern "C" 就是强
制指定. 如果不按这种方式指定.GetProcAddress(...)取出来的   
      就不对. 只能隐式连接.
extern "c" 的作用就是使得函数的定义名称和导出名称一致。
 
分享到:
评论

相关推荐

    extern C详细解释

    `extern "C"`用于告诉C++编译器,在处理其后的代码时,应采用C语言的链接约定。这意味着编译器不会对函数名进行修饰,而是保持其原始形式。这对于在C++代码中调用C语言编写的库或函数至关重要。 在实际应用中,`...

    关于externC的超详解

    在C++编程中,`extern "C"`是一个特殊的声明,用于告诉编译器按照C语言的规则处理特定的函数和变量。...在阅读“关于externC.txt”这个文件时,你可以期待深入学习到更多关于`extern "C"`的具体细节和实际应用案例。

    C语言中的extern关键字详细讲述

    分组成:“extern”和“C”,我们分别对这两部分进行详细的解释。 ### 1. extern关键字 `extern`是C语言中的一个关键字,主要用于声明一个变量或者函数的定义存在于当前编译单元之外的地方。当我们使用`extern`...

    extern c 用法解析

    在C++编程中,`extern "C"`是一个特殊的声明,用于指示编译器按照C语言的规则处理函数和全局变量,而不是C++的标准方式。由于C++支持函数重载和名称修饰(name mangling),这可能导致C++编译的代码与C编译的代码在...

    C语言之extern声明辨析

    C语言之extern声明辨析 extern关键字是C语言中的一种修饰符,用于声明变量或函数的定义在其他文件中。它可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中...

    extern "C"的详细用法+demo

    在C++编程中,`extern "C"`是一个特殊的声明,用于告诉编译器按照C语言的规则处理特定的函数或变量。这是因为C++支持名称修饰(Name Mangling),即编译器为了支持重载和其他特性,会改变函数和变量的原始名称。而...

    C语言extern使用方法总结.doc

    C语言extern使用方法总结 在C语言中,extern关键字是一个非常重要的概念,它可以用来声明全局变量和函数,但是很多人却不太了解它的使用方法。在本文中,我们将详细介绍extern关键字的使用方法和注意事项。 声明和...

    在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?.pdf

    在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? extern "C" 是连接申明(linkage declaration),它告诉编译器,以 C 语言的方式编译和连接变量和函数。这种方式使得 C++ 程序可以调用被 C ...

    浅析extern “C”的作用

    extern "C"是C++编程语言中的一个关键字,它用于告诉C++编译器按照C语言的方式处理接下来的函数声明。这样做的原因主要是因为C++和C语言在编译过程中对于函数名的处理方式存在差异,从而导致C++代码中不能直接调用...

    extern用法详解extern用法详解extern用法详解extern用法详解

    因此,当C++程序需要调用C语言的函数或变量时,需要使用`extern "C"`来告诉编译器这些标识符应该按照C语言的规则处理。例如: ```cpp // header.h #ifdef __cplusplus extern "C" { #endif void cFunc(); // C语言...

    在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?.docx

    类似地,在C语言头文件`cExample.h`中,定义了函数`add`,并使用extern关键字,告诉C编译器不要对函数名进行名称 mangling。在C++头文件`cppExample.h`中,定义了函数`add`,并使用extern "C"关键字,告诉C++编译器...

    C语言中extern用法总结

    这是因为C++支持函数重载,导致函数名可能发生变化,而`extern "C"`可以确保函数名与C语言中的保持一致。 #### 四、总结 `extern`关键字是C语言中用于实现多个源文件间通信的重要手段之一。正确理解和使用`extern`...

    iOS extern使用教程

    在C/C++语言中,`extern`是用来告知编译器变量或函数是在其他地方定义的。当你在某个文件中声明了一个全局变量或函数,但在其他文件中需要使用它时,就需要用`extern`来声明这个外部变量或函数的存在。 例如,假设...

    extern 'C' 详解

    B)在 C 中引用 C++ 语言中的函数和变量时,C++ 的头文件需添加 extern "C",但是在 C 语言中不能直接引用声明了 extern "C" 的头文件,应该仅将 C 文件中将 C++ 中定义的 extern "C" 函数声明为 extern 类型。...

    extern “C”使用详解.doc

    总结来说,`extern "C"`是C++为兼容C语言而设计的关键字,它让C++代码可以正确链接到C库,同时也使得C库可以被C++代码调用。理解并合理使用`extern "C"`,能够帮助我们在C++中无缝地集成C代码,提高代码的复用性和...

    extern在C和C++中的作用

    - **`extern "C"`的作用**:当在C++环境中使用C语言库时,需要通过`extern "C"`来避免名字修饰的发生,从而确保函数能够正确地被链接器识别。 #### 使用示例 假设有一个C语言定义的函数`void myFunc(int x);`,...

    C++中extern “C”含义深层探索.doc

    在C++编程中,`extern "C"`是一个关键的语法特性,它的主要目的是为了实现C++与C语言的兼容性。C++作为一种更强大的、面向对象的语言,它引入了诸如类、模板、重载等高级特性,这些特性使得C++在编译后的符号表示与...

    extern声明辨析

    ### C语言中的`extern`声明辨析 #### 1. `extern`声明的基本概念 `extern`关键字在C语言中主要用于声明外部变量或函数。它表明当前文件中使用的某个变量或函数是在另一个文件中定义的。`extern`的使用有助于模块化...

    C语言中extern用法

    问题:C语言的关键字extern在函数的声明中起什么作用? 答案:如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。例如,extern int f(); 和 int f(); 没有明显的区别。 ...

Global site tag (gtag.js) - Google Analytics