关于 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,可以找到函数。