I have a C++ file and its header file. I need to include this header file in a C code and use the functions in it.

When the `cpp.h` file is compiled through `main.c`, compilation fails because of the C++ linkage.

On using the macro `__cplusplus` `stream` and `string` are not resolved, is there some way to compile the `cpp.h` file through and execute?

I have given a outline of my code only.

C++ header file `cpp.h`:

```
struct s1
{
string a;
string b;
};
typedef struct s1 s2;
class c1
{
public:
void fun1(s2 &s3);
private: 
fun2(std::string &x,const char *y);
};

```

C++ file `cpp.cpp`:

```
c1::fun1(s2 &s3)
{
 fstream file;

}

c1::fun2(std::string &x,const char *y)
{

}

```

C file `main.c`:

```
#include "cpp.h"
void main()
{
 c1 c2;
 s1 structobj;
 c2.fun1(&structobj);
 printf("\n value of a in struct %s",structobj.a);

}

```