Hallo,ich sitz hier vor einem mega32 den ich mit WinAvr programmiere. Wenn ich mit char Feuchte_max EEMEM; eine Speicherstelle im eeprom anlege (vielleicht falsch ausgedrückt,aber ihr wisst sicher was ich meine),und dann mit max_feuchte = eeprom_read_byte (&Feuchte_max); lesen will oder mit eeprom_write_byte (&Feuchte_max,83); beschreiben will kommt folgende Warnmeldung ../neuer_test.c:60: warning: pointer targets in passing argument 1 of '__eewr_byte_m32' differ in signedness Es klappt alles so wie es soll,nur was soll mir diese Warnung sagen? Habe schon gegoogelt,aber nichts passendes gefunden. Wäre nett,wenn mir das jemand erklären könnte. gruss andy
andy schrieb: > Es klappt alles so wie es soll,nur was soll mir diese Warnung sagen? Gewöhn dir an, dass der richtige Datentyp für ein Byte unsigned char ist. Entweder das oder uint8_t Ein char hingegen ist nicht definiert, ob der ein Vorzeichen hat oder nicht (ob er signed oder unsigned ist - na klingelts? Die Fehlermeldung spricht von 'differ in signedness') Einen char benutzt du nur dann, wenn du es mit Buchstaben im Sinne von Textverarbeitung zu tun hast. Für alles andere nimmst du entweder signed char oder unsigned char (oder int8_t oder uint8_t) Und ja, manche Funktionen gehen natürlich für alles Für char, für unsigned char, für signed char Aber für irgendeinen Datentyp dieser 3 muss man sich allerdings im Funktionsheader entscheiden. Und mangels besseren Wissens, nimmt man dann unsigned char. Und wenn du da dann einen signed char angibst, dann hast du eben eine Differenz im Sinne von signed - unsigned : Das passt nicht zusammen
Hallo vielen Dank für die erklärung. Werde jetzt erstmal was über die verschiedenen Datentypen lesen. gruss andy
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.