Forum: Compiler & IDEs Warning bei strlen "signedness"


von Björn G. (tueftler)


Lesenswert?

Nabend Ihr da!
Habe hier eine mysteriöse Warning vom WinAvr.

Ich verstehe leider nicht was Ihm an meinem Ausdruck nicht passt.

Habe i schon als int8_t und auch als int deklariert ohne positives 
Ergebnis.

Warning:
RX.c:73: warning: pointer targets in passing argument 1 of 'strlen' 
differ in signedness

1
 
2
extern uint8_t ger_seriennummer[15];
3
extern uint8_t uart0_data_array[80];
4
5
void function (void)
6
{
7
  uint8_t i;
8
 
9
  for (i=2; i <= ((strlen(uart0_data_array)) - 3); i++)
10
  {
11
    ger_seriennummer[(i - 2)] = uart0_data_array[i];
12
  }    
13
}

Die for/next macht aber mit dem code was sie soll.

Evtl. weiss ja jemand Rat.
Björn

von Johannes M. (johnny-m)


Lesenswert?

Mit i hat das gar nichts zu tun! Die Warnung bezieht sich auf den 
Parameter, den Du der Funktion strlen übergibst, also 
uart0_data_array (Hast Du die Warnmeldung überhaupt richtig gelesen?). 
Die Funktion erwartet einen Pointer auf const char (je nach 
Compilereinstellungen vorzeichenbehaftet!) und Du übergibst einen 
Pointer auf uint8_t (vorzeichenlos!)...

von Björn G. (tueftler)


Lesenswert?

Hi.

Hatte die Warning nicht richtig interpretiert.

Danke fürs darauf stoßen ;-)
Björn

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.