如何在.cpp文件中使用C ++关键字?

时间:2012-12-13 11:46:46

标签: c++ c visual-studio-2010

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

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那样抛出classnew不能像变量一样使用。

那么如何使用C文件中的cpp头文件?

2 个答案:

答案 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 ++中的保留字。

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