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


von Ben j. (scarab)


Lesenswert?

Hallo,

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

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

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

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

von Peter (Gast)


Lesenswert?

unsigned char *ptr

ist halt nicht

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

von Floh (Gast)


Lesenswert?

const

von Rolf Magnus (Gast)


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.
1
> ../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.
1
> ../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?

von Ben j. (scarab)


Lesenswert?

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


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


THX

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.