前言
如何在C++代码中调用写好的C接口?你可能会奇怪,C++不是兼容C吗?直接调用不就可以了,那么我们来测试一下,先看看C++如何调用C代码接口的。
C++调用C文件
一个C语言文件test.c
#include <stdio.h>
void print(int a,int b)
{
printf("这里调用的是C语言的函数:%d,%d\n",a,b);
}
一个头文件test.h
#ifndef _TEST_H
#define _TEST_H
void print(int a,int b);
#endif
C++文件调用C函数
#include <iostream>
using namespace std;
#include "test.h"
int main()
{
cout<<"现在调用C语言函数\n";
print(3,4);
return 0;
}
执行命令
gcc -c test.c
g++ -o main main.cpp test.o
编译后链接出错:main.cpp对print(int, int)未定义的引用。
那么g++编译器为什么找不到print(int,int)呢,其实在我们学C++重载的时候就提到过C++底层的编译原理。