C18: type mismatch in assignment Error

Gast #2722148
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren