lst.h的内容为:

#ifndef ADD_HEADER
#define ADD_HEADER

int add(int x, int y);

#endif

    lst.c的内容为:(注意是.c文件)

#include "lst.h"

int add(int x, int y)
{
	return x + y;
}

    main.cpp的内容为:

#include <iostream>

//extern "C"
//{
	#include "lst.h"
//}

using namespace std;

int main()
{
	int a = 1;
	int b = 2;
    int c = add(1, 2);
	cout << c << endl;

	return 0;
}
    结果,程序的编译有错,如果把main.cpp中的内容改为:

#include <iostream>

extern "C"
{
	#include "lst.h"
}

using namespace std;

int main()
{
	int a = 1;
	int b = 2;
    int c = add(1, 2);
	cout << c << endl;

	return 0;
}
      那么,程序正确。



本文转载:CSDN博客