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.hincludedactual_task()

CPPfile.cpp

extern "C"{
#include "abc.h"
}

errors次に、のようclassにスローnewし、変数のように使用することはできません。

次に、ファイル内のCヘッダーファイルを使用する方法はcpp

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++で予約語である名前を持たないようにヘッダーを変更します。

誰かがあなたがそれからあなたが彼らにあなたがこの意味で互換性のない2つの別々のプログラミング言語からのソースコードをマージするように頼まれていると言うことができないと言うならば。これは、既知の解決策に関する既知の問題です。

于 2012-12-13T12:18:51.983 に答える