关于 extern “C”,我只写实践,简单易懂。

用于:C++ 需要用到C的库和 .o文件 ,才会用到,注意是 ‘库’(动态库,静态库)。

注意:C++ 和.C 文件直接可以g++,但不能gcc。


例: hello.c

#include <stdio.h>
void hello(void);
{
    printf("Hello");
}

    myhello.cxx

#include <stdio.h>
void hello(void);
int main(void)
{
    hello();
    
    return 0;
}

使用:1.g++ myhello.cxx hello.c

    

    myhello2.cxx

#include <stdio.h>
extern "C" void hello(void);
int main(void)
{
    hello();
    
    return 0;
}


使用方法:

    1.gcc -c hello.c

    2.g++ myhello2.cxx hello.o


分析:

    gcc 编译 函数hello,生成 hello;

    g++ 编译 函数hello,生成 hello_init 等,与编译器gcc 不同,所以不加关键字会出错误:没有声明,C++中加入 extern “C”,按gcc 编译,就是hello,可以找到函数。