在实际开发中,经常会遇到C++与C混用的情况,具体方法如下
C1.c文件是用C编写的C文件:
#include <stdio.h>
//使用C编写
int i = 1;
void func()
{
printf("%d", ++i);
}
CPP1.cpp文件是用c++编写的C++文件
#include<iostream>
using namespace std;
//使用C++编写
//
extern int i;
extern void func();
int main() {
func();
system("PAUSE");
return 0;
}
编译后会出错,因为一个文件是c文件一个是cpp,两者又通过extern联系变量,所以出错
这时要使用extern"C"关键字
所以在C++文件中编译C文件需要使用extern "C"关键字,声明语法如下所示
extern "C"
{
采用C语言实现的内容
}
在CPP1.cpp文件中:
#include<iostream>
using namespace std;
//使用C++编写
extern "C" {
extern int i;
extern void func();
}
int main() {
func();
system("PAUSE");
return 0;
}
这样就可以通过编译了