extern_cpp.cpp
1 #include <stdio.h>
2
3 extern "C" int var;
4 extern "C" void function();
5
6
7 // c++ 支持函数重载,所以在编译过程当中c/c++ 对函数的命名方式是不一样的。
8 int main() {
9
10 function();
11 var = 100;
12
13 printf("cpp var %d \n",var);
16 }
~
extern_c.c
1 #include <stdio.h>
2
3 int var = 99;
4
5 void function(){
6 printf("show extern_c varl %d \n",var);
7 }
编译
root@VM-24-3-ubuntu:~/interview/cpass/extern# gcc extern_c.c -c
root@VM-24-3-ubuntu:~/interview/cpass/extern# gcc extern_cpp.cpp -c
root@VM-24-3-ubuntu:~/interview/cpass/extern# gcc extern_c.o extern_cpp.o -o extern_cplus
root@VM-24-3-ubuntu:~/interview/cpass/extern# ./extern_cplus
show extern_c varl 99
cpp var 100 ~
~