mikrocontroller.net

Forum: Compiler & IDEs Programm funktioniert aber Warnung soll noch weg


Autor: Ben jamin (scarab)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein funktionierendes Programm aber hätte noch gerne folgende 
Warnung weg die beim compilieren kommt:
../test3.c:59: warning: passing argument 1 of 'bitmap' discards qualifiers from pointer target type
../test3.c:189: warning: suggest parentheses around comparison in operand of &
und der dazu gehörige code:

die Funktion um die es geht:
#if (USE_bitmap == True) //----------------------------------------------------
void bitmap(unsigned char *ptr, unsigned char x,unsigned char y)   
{   short z, hoehe, breite, anzahl;
    hoehe=ptr[2];
    breite=ptr[0];
    anzahl=(hoehe/8)*breite;
    for(z=1; z<anzahl; z+=1)
    {
        Display[z/breite+(y+1)/8][z%breite+x]=ptr[z+4];
    }
}
#endif //----------------------------------------------------------------------

so wird die Funktion aufgerufen:
bitmap(snake,15,0);

und snake ist ein array das quasi ein bild enthält:
const unsigned char snake [] = {
0x37, 0x00, 0x40, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, 0x18, 0x0C, 0x04, 0x06, 0x82, 0x82,
...
(die ersten 4 Byte geben die Größe des Bild an)

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
unsigned char *ptr

ist halt nicht

const unsigned char snake
void bitmap(const unsigned char *ptr, unsigned char x,unsigned char y)

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
const

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benjamin F. schrieb:
> ich habe ein funktionierendes Programm aber hätte noch gerne folgende
> Warnung weg die beim compilieren kommt:

Ich zähle da zwei Warnungen.
> ../test3.c:59: warning: passing argument 1 of 'bitmap' discards qualifiers from pointer target type

Wurde ja schon erwähnt: Du verwirfst das const bei der Übergabe von 
snake an die Funktion.
> ../test3.c:189: warning: suggest parentheses around comparison in operand of &

Ich kann in deinem Codefragment kein & finden. Auf welche Zeile soll 
sich das denn beziehen?

Autor: Ben jamin (scarab)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt, ich habe angenommen die Warnungen gehören zusammen aber die 2. 
bezieht sich auf:
do
{
    eaty=rand()%56+4;
    eatx=rand()%120+4;
}while(Display[eaty/8][eatx] & (eaty%8) == 0);


EDIT: so gehts
while((Display[eaty/8][eatx] & (eaty%8)) == 0);


THX

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.