ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
2323
2323
EMPFEHLEN
-
Hallo,
Ich habe folgendes Problem,
Ich verwende eine LIB die diese zwei Definitionen beinhaltet.
Jatzt hab ich diese Definitionen folgender maßen in mein Programm übernommen:
Code :1 2 3 4 5 6 7
#ifndef DWORD typedef unsigned long DWORD; #endif #ifndef BOOL typedef int BOOL; #endif
Trotz der #ifndef BOOL Anweisung bekomme ich folgende Fehlermeldung
Code :1 2 3 4 5 6
In file included from KopplungSMA.c:17: Programm.h:26: error: redefinition of typedef âDWORDâ ./LIBs/lib_yasdi-1-7-2-src/smalib/smadef.h:60: error: previous declaration of âDWORDâ was here Programm.h:30: error: redefinition of typedef âBOOLâ ./LIBs/lib_yasdi-1-7-2-src/smalib/smadef.h:68: error: previous declaration of âBOOLâ was here make[1]: *** [KopplungSMA.o] Error 1
Eigentlich sollte das #ifndef das doch verhintern oder?
mfg
Klaus D.
-
14.11.07 20:26 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Du vermischst verschiedene Dinge miteinander. Ein typedef ist ein neuer Alias/Name für einen vorhanden Typ. Und dann gibt es noch Präprozessormakros.
Präprozessormakros erstellt man mit #define. Diese kann man dann auch mit #ifndef auf Nicht-Existenz prüfen.
Bei typedefs ist das nicht der Fall. Allerdings ist es in C++ (nicht in C!) erlaubt ein typedef mehrfach zu definieren, vorrausgesetzt es wird für ein und derselbe Typ ein Alias definiert:GrußCode cpp:1 2 3 4 5
typedef unsigned int uint; typedef unsigned int uint; // in C++ OK! typedef unsigned long uint; // Konflikt zu vorheriger Definition.
\edit: Du könntest ja stattdessen wirklich Präprozessormakros verwenden:Code c:1 2 3
#ifndef BOOL #define BOOL int #endif
Geändert von deepthroat (14.11.07 um 20:31 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hallo deepthroat,
Danke dir für die super schnelle Hilfe,
so in etwa hatte ich das schon fast vermutet.
mfg
Klaus D.
Ähnliche Themen
-
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
Error "C2601" trotz Funktionsdefinition außerhalb von Funktion
Von stage im Forum C/C++Antworten: 3Letzter Beitrag: 10.03.10, 13:10 -
Kein Internet trotz "Verbindug hergestellt"
Von Headymaster im Forum NetzwerkeAntworten: 8Letzter Beitrag: 28.03.09, 18:17 -
C# Trotz "Show Desktop" Knopf nicht minimieren
Von Terrance & Philipp im Forum .NET Windows FormsAntworten: 6Letzter Beitrag: 02.11.05, 13:40 -
Film trotz "stop"-Befehl weiter laufen lassen
Von Receiver im Forum Flash PlattformAntworten: 2Letzter Beitrag: 15.02.04, 02:27





Zitieren
Login






