Library-Funktion durch eigene Funktion ersetzen

OP #5697957
Lesenswert?
• ▲
▼
Hallo zusammen,

das von mir für die Anpassung alter AVR-Projekte bevorzugte Atmel Studio 
7 nutzt standardmäßig den AVR-GCC 4.8.1. Damals habe ich eine Funktion 
für wasnprintf_P geschrieben, die die gleiche Signatur wie die 
eingebaute Funktion snprintf_P hat, um einen Fehler zu umgehen. 
Anschließend wurde jeder Aufruf von snprintf_P in der 
Entwicklungsumgebung gesucht und durch wasnprintf_P ersetzt.

Sprung in die Gegenwart: Compiler und Entwicklungsumgebung sind gleich 
geblieben. Allerdings erscheint mir die damalige Vorgehensweise 
("aufpassen, dass ich statt Funktion A immer Funktion B verwende") 
mittlerweile ziemlich umständlich und fehlerträchtig.

Gibt es einen weniger fehlerträchtigen Weg, statt einer Library-Funktion 
eine eigene Funktion mit der gleichen Signatur zu verwenden?

Viele Grüße
W.T.
Gast #5697994
Lesenswert?
• ▲
▼
Wenn das Library anständig aufgebaut ist, befindet sich die Funktion 
wasnprintf_P in einer eigenen Datei (innerhalb des Libraries). Dann 
reicht es, deine eigene Version einfach explizit mitzulinken - die aus 
dem Library wird dann nicht genommen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.