comparison of distinct pointer types lacks a cast



  • Hallo
    Freunde von C

    Ich habe da ein HD44780 Project mit XC32 von Microchip (C89 und teilweise C99)
    und überarbeite dies, die folgende Funktion funktioniert,
    nur bekomme ich "warnings"

    Kann man die Funktion so verbessern, dass ich keine Warnings mehr bekomme ?

    void XLCDOutput(HHD44780 const hHd44780, uint8_t X, uint8_t Y, char *pStr) 
    {
       SetPositionText(hHd44780, X , Y );
      do
        {
            pStr = hd44780WriteRAMString(hHd44780, pStr);
        } while (pStr != (uint8_t *) 0);
    }
    

    ../../../../framework/hd44780/HD44780.c: In function 'XLCDOutput':
    ../../../../framework/hd44780/HD44780.c:2155:14: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
    pStr = hd44780WriteRAMString(hHd44780, pStr);
    ------^
    ../../../../framework/hd44780/HD44780.c:2156:19: warning: comparison of distinct pointer types lacks a cast [enabled by default]
    } while (pStr != (uint8_t 😉 0);
    ---------------^



  • Welchen Rückgabewert hat hd44780WriteRAMString und welchen Typ hat pStr? Ist der Typ von pStr derselbe wie uint8_t*?



  • Für Zeiger nimmt man NULL



  • Oh ja ea war ein Typecast Error uint8_t versus char



  • In Zeile 6 weist du einem nicht const Zeiger einen const Zeiger zu, das sagt dir der Compiler.



  • Danke für die Anrwort

    Ja das weiß ich auch, aber kann man das ändern ?


  • Mod

    Das kann man ändern, ja.


Log in to reply