incompatible pointer type bei fdevopen()

Gast #77356
Lesenswert?
• ▲
▼
Hallo
wahrscheinlich bin ich ma wieder der 237. der diese Frage stellt, aber
eine (nicht sehr ausführliche) Suche ergab nichts wirklich
hilfreiches.

ich definiere in meinem Quellcode die Funktion

int8_t spiPutByte(uint8_t byte) {
    // blub blub
}

und möchte die mit stdio verwenden.
diese zeile:

fdevopen(spiPutByte, NULL, 0);

funktioniert auch bringt aber die folgende Warnung:

main.c:24: warning: passing arg 1 of `fdevopen' from incompatible
pointer type

warum?
Gast #77358
Lesenswert?
• ▲
▼
extern FILE
*fdevopen(int (*put)(char), int (*get)(void), int opts);

D. h. der Rückkehrwert der Funktion muß `int' sein (nicht int8_t,
auch
nicht uint8_t, int16_t oder sowas, einfach `int'), der Parameter ist
`char' (was übrigens nicht unsigned ist).
Gast #77361
Lesenswert?
• ▲
▼
Hi Leute,

das Thema ist zwar schon ziemlich alt aber ich habe dieses Problem
jetzt auch. Ich möchte per Uart was versenden und nutze die
fdevopen-Fukntion. Mein AVR-Studio gibt die gleiche Fehlermeldung aus
wie bei ape. Da ich ja per Uart senden möchte, brauche ich ja char,
wie soll ich denn damit einen Integer zurückgeben?

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.