1

根据我的要求。假设我有以下文件

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像变量一样使用。

那么如何在文件中使用Ccpp文件呢?

4

2 回答 2

2

您不能将使用 C++ 关键字的 C 头文件用于其他目的,而不是它们在 C++ 中的用途。

正确的解决方案是更改头文件,使其不再使用 C++ 关键字。

如果 C++ 关键字用于全局变量(C++ 代码不使用)或函数参数名称,您可能会使用如下构造:

#define new new_
#define class class_
extern "C" {
    #include "abc.h"
}
#undef class
#undef new
于 2012-12-13T11:57:38.370 回答
0

更改标题,使变量/函数的名称没有 C++ 中的保留字。

如果有人说你不能,那么告诉他们你被要求合并来自两种不同编程语言的源代码,从这个意义上说,这两种编程语言是不兼容的。这是已知解决方案的已知问题。

于 2012-12-13T12:18:51.983 回答