struct error
-
Hallo,
Ich habe folgenden struct deklariert:
typedef struct {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;typedef FILETIME *PFILETIME;
Beim Kompilieren erscheint folgender Fehler:
./../GDCore/types.h error: ‘FILETIME’ has a previous declaration as ‘typedef struct FILETIME FILETIME’
Ist irgend etwas falsch an der Deklaration?? Danke!
-
Versuch mal das hier:
typedef struct test { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME; typedef FILETIME *PFILETIME;
-
Unter C++ sollte das eher so aussehen#
struct FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; };
Beide Varianten erzeugen eine Instanz einer struct mit dem Namen FILETIME, oben unnamed, unten mit dem Typ test.
-
Hast du zufälligerweise die
<windows.h>
inkludiert? Denn in der WinAPI gibt es bereits so ein struct:
http://msdn.microsoft.com/en-us/library/ms724284(VS.85).aspxDaher machst du eine redefinition und dein Compiler meckert.
Im übrigen deklariert/definiert man ein struct in C++ so:
struct MyStruct { // ... };
Also ohne das typedef. Das mit dem typedef kommt aus C.
Grüssli
-
Vielleicht noch als Ergänzung:
Auch wenn man es wie Dravere macht (also modern), muss man im Gegensatz zu C keinen Typbezeichner mehr vor eine Deklaration schreiben.struct MyStruct { // ... }; MyStruct A; // C++ struct MyStruct B; // C
-
Hallo,
Danke fuer die vielen Antworten!!
Auch mit der test-Variabte gibt es den gleichen Fehler.
<windows.h> habe ich nicht implementiert, da ich das Projekt leider in Linux (Komplikation multipliziert mit 10.000) komplilieren muss.
-
Der Fehler liegt auf jeden Fall nicht (nur) in dem Codestück, dass du uns gegeben hast. Das lässt sich nämlich einwandfrei kompilieren (wenn man sich DWORD definiert)...
Felix
-
mammamia;
-
mammamia;