namespace in C?
-
wie kann ich in C sicher stellen, dass Funktionsnamen eindeutig bleiben?
sagen wir ich habe zwei Bibliothekn liba und libb und jede hat einen Funktion getVersion(). Ich schreibe ein Programm, das beide Bibliotheken benötigt und statisch linkt, dann bekomme ich einen Linker-Fehler: "_getVersion bereits in liba.obj definiert".
Wie löse ich dieses Problem?
-
funktionen umbenennen, z.b. libA_getVersion() und libB_getVersion().
die zeichen vor dem unterstrich sind dann sowas wie ein namespace.
-
bibliothekar schrieb:
wie kann ich in C sicher stellen, dass Funktionsnamen eindeutig bleiben?
...
Wie löse ich dieses Problem?Indem du pro Funktion einmalig einen Namen vergibst.
-
Simple de Luxe schrieb:
bibliothekar schrieb:
wie kann ich in C sicher stellen, dass Funktionsnamen eindeutig bleiben?
...
Wie löse ich dieses Problem?Indem du pro Funktion einmalig einen Namen vergibst.
Und wie vergibt man den?
-
indem du dir für jede Funktionen einen eindeutigen Namen überlegst? Siehe Antwort 2 (von funktions-freak). Das ist eine gute Methode und viele Bibliotheken ziehen da "knallhart" durch (gtk z.b.)