C18: type mismatch in assignment Error

Gast #2722148
Hallo,

ich habe hier einen Fehler im Programm, anscheinend passen die 
Datentypen der Variablen nicht zusammen, hab schon wegen y/8 einen float 
bzw. wegen int einen double Datentyp für temp versucht, geht aber nicht
1
void glcd_ReadData(unsigned int x, unsigned int y)
2
....
3
unsigned int temp;
4
temp = glcd_ReadData(x, y/8);
#2722153
Aggronym schrieb:


> void glcd_ReadData(unsigned int x, unsigned int y)

Was sagt uns das void an dieser Stelle?

Das die Funktion keinen Returnwert liefern wird.

> ....
> unsigned int temp;
> temp = glcd_ReadData(x, y/8);

Wie kannst du einen nicht vorhandenen Returnwert einer Variablen 
zuweisen?


>  hab schon wegen y/8 einen float bzw. wegen int einen double
> Datentyp für temp versucht

Autsch.
Das eine hat mit dem anderen genau gar nichts zu tun.
Welche Werte in eine Funktion reingehen ist eine Sache. Welcher Wert 
(und welchen Datentyp der hat) aus einer Funktion rauskommt ist eine 
ganz andere Sache.

(Im C-Buch noch mal das Grundlagenkapitel über Funktionen studieren. 
Solche Sachen müssen 100% sitzen. Da gibt es kein Pardon)
Gast #2722169
Tschuldigung, mein Fehler!

Im Code gehören die Zeilen nicht zusammen, also ich versuch das nochmal 
besser zu schreiben:
1
void glcd_ReadData(unsigned int x, unsigned int y){
2
.....
3
}
4

5
void glcd_pixel(unsigned int x, unsigned int y, unsigned int colour) {
6
unsigned int temp;
7
temp = glcd_ReadData(x, y/8);
8
....
9
}

Tut mir leid Karl, das geht auf meine Kappe.

Gruß
Aggro
#2722198
Aggronym schrieb:
> Tschuldigung, mein Fehler!
>
> Im Code gehören die Zeilen nicht zusammen, also ich versuch das nochmal
> besser zu schreiben:

Ist doch völlig wurscht.
glcd_ReadData ist eine Funktion, die keinen Returnwert liefert. Das ist 
das, was das void vor dem Funktionsnamen in der Deklaration aussagt.

Einen nicht vorhandenen Returnwert kannst du keiner Variablen zuweisen.
Wo nichts ist, kann man auch nicht damit arbeiten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.