Forum: Mikrocontroller und Digitale Elektronik Warnmeldung AVR Studio


von P. F. (pfuhsy)


Lesenswert?

Hallo,

ich bekomme bei meinen Code eine Warnmeldung:
"../main.c:441:2: warning: pointer targets in passing argument 1 of 
'putString' differ in signedness"

"../uart.h:37:6: note: expected 'unsigned char *' but argument is of 
type 'char *'"

bei:
1
void putString(unsigned char buffer[])  
2
{
3
  int i;
4
  for (i=0 ; buffer[i] !=0 ; i++)
5
    putChar(buffer[i]);
6
}
7
8
putString("Sende...");

Wenn ich den Funktionsaufruf so ändere:
1
unsigned char x[6] = {"Sende..."};
2
putString(x);

dann meckert er nicht mehr. Ich verstehe das also so, dass er bei den 
Funktionsaufruf ein unsigned char erwartet, aber etwas anderes bekommt.
Ok, aber wie kann ich den Funktionsaufruf schreiben ohne dafür eine 
Varailbe anzulegen ???

Gruss

von Peter II (Gast)


Lesenswert?

Peter F. schrieb:
> Ich verstehe das also so, dass er bei den
> Funktionsaufruf ein unsigned char erwartet, aber etwas anderes bekommt.
> Ok, aber wie kann ich den Funktionsaufruf schreiben ohne dafür eine
> Varailbe anzulegen ???

weil ein text nun mal kein unsigned char ist.
1
void putString(char buffer[])

von P. F. (pfuhsy)


Lesenswert?

Ich muss aber unsigned char nehmen. Im Normalfall übertrage ich damit 
Werte  aus der ASCII-Tabelle die 0x00 - 0xFF haben können. Oder hab ich 
da einen Denkfehler ?

von Peter II (Gast)


Lesenswert?

Peter F. schrieb:
> Ich muss aber unsigned char nehmen. Im Normalfall übertrage ich damit
> Werte  aus der ASCII-Tabelle die 0x00 - 0xFF haben können. Oder hab ich
> da einen Denkfehler ?

warum nennst du dann die Funktionen SendString?

Ein String ist char*

Dann leg doch noch eine 2.Funktion an,
1
SendData( uint8_t* data, uint8_t len ) { ...};

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.