今天测试了一下C++ 源文件中要调用C源文件定义的函数,最初在头文件中声明函数,C源文件和C++源文件中都include头文件,导致CodeBlock编译不通过。经过修改和测试,发现在C源文件中不能include头文件,并且应该在头文件中添加extern操作。
main.cpp
#include <iostream>
#include "sum.h"
using namespace std;
int main(void)
{
cout << "sum " << sum(2, 3) << endl;
}
sum.h
extern "C" {
int sum(int x, int y);
}
sum.c
int sum(int x, int y)
{
int z = x + y;
return z;
}