c
ソースファイルとソースファイルの両方を含むプロジェクトに取り組んでいc++
ます。
私は次のようなコードを使用します:
extern "C"
{
#include "init.h"
#include "ParameterGet.h"//ParameterGet.c exists
}
c ファイルをインクルードします。
しかし、.h
ファイルのない c のファイルを取得しました.c
。そして、それは(私が思うに)次の多くのエラーを引き起こします:
multiple definition of `PeriodicFaultReport'
multiple definition of `FaultActiveEventReport'
multiple definition of `FaultInactiveEventReport'
multiple definition of `FaultLatchEventReport'
ここPeriodicFaultReport
でFaultActiveEventReport
、、、、FaultInactiveEventReport
はFaultLatchEventReport
すべて宣言されて"DataStruct.h"
おり、このファイルにはファイルがありません.c
。
PeriodicFaultReport
その上、FaultActiveEventReport
、FaultInactiveEventReport
、FaultLatchEventReport
がすべてであることに気付きましたglobal variables
。
[重要]
"DataStruct.h"
内の相対コンテンツc
:
struct OptionalString PeriodicFaultReport;
struct FaultActiveEventReportSet
{
BOOL Flag;
UINT8 Type ;
UINT32 Length;
struct Optional... Report...[2];
}FaultActiveEventReport;
struct FaultInactiveEventReportSet
{
BOOL Flag;
UINT8 Type ;
UINT32 Length ;
struct Optional... Faultt...;
}FaultInactiveEventReport;
struct FaultLatchEventReportSet
{
BOOL Flag;
UINT8 Type ;
UINT32 Length ;
struct OptionalInteger FaultID[2];
}FaultLatchEventReport;
hereのような答えがあるかもしれませんが、
正しくありません。プロジェクト
からすべてのファイルを取得すると、他の .h ファイルに複数回含まれていますが、問題はありません。
(プロジェクトは にあり、これが問題のない理由かもしれません)
しかし、これは本当ですか、これに役立ち、標準を破りますか?c
"DataStruct.h"
c
VS2008
VS
c