Forum: Mikrocontroller und Digitale Elektronik Warnung: makes pointer from integer without a cast


von Lokus P. (derschatten)


Lesenswert?

Ich verwende von Peter Fleurys LCD-Lib die Funktion
1
lcd_puts_p(pgm_read_word(&menu[menu_index].text));

Als Warnung bekomme ich jedoch:
../main.c:596: warning: passing argument 1 of 'lcd_puts_p' makes pointer 
from integer without a cast

weil die Rückgabewerte nicht klar definiert sind.

Mit
1
lcd_puts_p((PGM_P)pgm_read_word(&menu[menu_index].text));
tritt die Warnung nun nicht mehr auf.
jetzt ist die Frage, umgehe ich damit das Problem nur oder wird es 
tatsächlich gelöst?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wahrscheinlich (weil Definition von menu[menu_index].text sieht man 
nicht, Annahme die ist richtig) gelöst.

von Bernhard R. (barnyhh)


Lesenswert?

Wenn Du das Problem lösen willst, dann solltest Du wissen, was Du 
tust. Wildes Herumgecaste ohne Wissen bringt nichts. Schon die Bibel 
sagt: "Herr vergib ihnen, denn sie wissen nicht, was sie tun!"

Bernhard

von Andreas F. (aferber)


Lesenswert?

Die Meldung ist doch eigentlich ziemlich offensichtlich. lcd_puts_p() 
hätte gerne einen Pointer als Argument, pgm_read_word() liefert aber 
einen Integer, daher die Meldung ohne den Cast. Im zweiten Fall hast du 
einen expliziten Cast drinstehen, und der Compiler gibt Ruhe (der 
explizite Cast wird vom Compiler als "Ja, ich weiss was ich tue" 
interpretiert, ob das stimmt, ist ein anderes Thema).

Andreas

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
Noch kein Account? Hier anmelden.