2012-12-13 23 views
1

根據我的要求。 假設我有以下文件如何在.cpp文件中使用C++關鍵字?

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" 
} 

然後拋出errorsclassnew不能隨便用像一個變量。

那麼如何在cpp文件中使用C頭文件?

+9

無賴...你不能。 –

+1

這個要求來自哪裏? –

+0

@BjörnPollex:這是一個單獨的任務,它正在調用feom ac文件,但現在我必須控制它,並且需要從cpp文件調用它 –

回答

2

您不能將C++關鍵字文件用於C++關鍵字以外的目的,而不是它們在C++中的用途。

正確的解決方案是更改頭文件,使其不再使用C++關鍵字。

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

強調/可能/自定義C++關鍵字是不是真的允許 – PlasmaHH

0

更改標題,以便:

如果C++關鍵字用於全局變量(未使用的C++代碼)或函數參數的名稱,你可以用這樣的結構脫身變量/函數沒有C++中保留字的名稱。

如果有人說你不能告訴他們,你被要求合併來自兩種不同編程語言的源代碼,在這種意義上,它是不兼容的。這是已知解決方案的已知問題。