extern“C”和extern之间的区别

这个问题在这里已经有了答案:

  • C ++中extern“C”的效果是什么? 12个答案

  • extern“C”只是表示可以使用C或Cpp编译器来编译以下代码块。 这是在您混合使用C / C ++代码并且需要跟踪语言特定功能时完成的。 以一种更加怪异的方式,C链接变得与Cpp编译器兼容。

    代码可以是从变量/ typedef到全功能/模块声明的任何内容。

    但是,如果你这样做:

    extern char c; // same goes true for extern int foo()
    

    这意味着你说“我正在使用char c,它有一个在这个文件外部的声明”。 更像是在搜索路径中的某个其他模块中。 这隐含地是全球性的。 在运行时,如果c发生了变化,则变化无处不在。 这是提供您的编译器指令,如-Iinclude_file_dirs -Ssource_file_dirs等被正确提供(在GCC或g ++上)。 使用功能强大的IDE(如Visual Studio 2010或更高版本),您可以非常轻松地完成这些任务。

    “extern”是一个关联关键字。 您可以将它与“C”结合用于编译器特定的连接指令。


    extern“C”禁用名称修改。 它将允许您的C ++代码从C编译器编译的库中调用函数


    extern "C" int someFunction( void *ret_val);  
    

    会让someFunction有C连接。

    链接地址: http://www.djcxy.com/p/40483.html

    上一篇: difference between extern "C" and simply extern

    下一篇: What exactly do I lose when using extern "C" in C++?