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

C++ 如何使用C++;关键字在.cpp文件中?,c++,c,visual-studio-2010,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 varia

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

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
才能使用
实际任务()

然后它抛出
错误
,就像
不能像变量一样使用


<> >如何使用<代码> C>/Copy>头文件在CpP< /Cord>文件>

< P>不能使用C++头的C头文件,而不是C++中的其他用途。

正确的解决方案是改变头文件,以便不再使用C++关键词。

如果C++关键字用于全局变量(未被C++代码使用)或函数参数名,则可能会逃脱这样的构造:

#define new new_
#define class class_
extern "C" {
    #include "abc.h"
}
#undef class
#undef new

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


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

Bummer。。。你不能。这个要求是从哪里来的?@BjörnPollex:这是一个单独的任务,从一个c文件调用,但现在我必须控制它,需要从一个cpp文件调用它。注意,
extern“c”
并不意味着“将其编译为c代码”。它仍然是C++;只有生成的名称才能更改C编译器的匹配。强调C++的定义可能不是真正允许的。
#define new new_
#define class class_
extern "C" {
    #include "abc.h"
}
#undef class
#undef new