根据我的要求。 假设我有以下文件
abc.h //used for C file
int new; // All C++ keywords, new use as a variable
char class; // All C++ keywords, class use as a variable
Actual_task();
abc.c //C file
main()
{
...//Body of file where they have used new and class variable
new++; //for an example
class = 'C';
actual_task();//One function is getting called here
}
我有一个.cpp
文件,需要文件abc.h
需要included
才能使用actual_task()
:
CPPfile.cpp
extern "C"{
#include "abc.h"
}
然后它会像errors
那样抛出class
而new
不能像变量一样使用。
那么如何使用C
文件中的cpp
头文件?
答案 0 :(得分:2)
您不能将使用C ++关键字的C头文件用于其他目的,而不是C ++中的用途。
正确的解决方案是更改头文件,使其不再使用C ++关键字。
如果C ++关键字用于全局变量(C ++代码不使用)或函数参数名称,那么您可能会使用这样的结构:
#define new new_
#define class class_
extern "C" {
#include "abc.h"
}
#undef class
#undef new
答案 1 :(得分:0)
更改标题,以便变量/函数的名称不是C ++中的保留字。
如果有人说你不能告诉他们你要求合并来自两种独立编程语言的源代码,在这种意义上,这些语言是不兼容的。这是已知解决方案的已知问题。