Warnmeldung "comparison between pointer and integer "

OP #1082351
Lesenswert?

Hallo zusammen,

kann mir wer sagen warum der folgende Code die obige Warnmeldung 
erzeugt?
1
void init_varis(void)
2
{  
3
  uc_8 i;
4

5
  i = input(SPL);
6
  i ^= 0xFF;
7
  //i = 3;
8
  extern ui_16 __bss_start;
9
  extern ui_16 __stack;
10
  uc_8 *ptr = (uc_8*)&__bss_start;
11

12
  while((ptr<(uc_8*)&__stack - i) &&(ptr <= 0x0370)){/*sub because of returning of subroutine*/
13
    *ptr++=0;
14
  }


Besten Dank!

Gruß,
Mink
Gast #1082366
Lesenswert?

hi!

weil du eine "comparison between pointer and integer" machst

also einen vergleich zwischen einem pointer und einem integer

...
uc_8 *ptr = (uc_8*)&__bss_start;

  while((ptr<(uc_8*)&__stack - i) &&(ptr <= 0x0370))
...

ptr ist ganz offensichtlich ein pointer
und 0x0370 ist offensichtlich ein integer
und die vergleichst du...

war jetzt nicht so schwer oder?

mach ein

  while((ptr<(uc_8*)&__stack - i) &&(ptr <= ((uc_8*)0x0370)))

draus
(wenns wirklich das ist was du willst)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren