Я работаю над проектом, который содержит как c
исходные файлы и c++
из них.
Я использую код как:
extern "C"{
#include "init.h"#include "ParameterGet.h"//ParameterGet.c exists
}
включить c файлами.
Но я получил .h
файлы с которой нет .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;
Я знаю, что может быть ответ, как Вот
Но это не правильно
Я получаю все файлы из c
проект, и там, "DataStruct.h"
включены несколько раз в другие файлы .h, и это не проблема.
(The c
проект находится в VS2008
что может быть причиной без проблем)
Но правда ли это, VS
помогает этому и сломать c
стандарт?
Задача ещё не решена.
Других решений пока нет …