Vergleichen von Zeichenketten in C funktioniert nicht

OP #2609188
Lesenswert?

Einen schönen Sonntag wünsch ich euch allen erst ein mal.
Ich habe folgendes Problem. Ich will einfach 2 Char Arrays vergleichen 
bekomme aber beim Kompilieren eine Warnmeldung und funktioniert auch 
nicht.
Habt ihr nen Tip?


char ausschalten[] = "mach an";
const char einschalten[] = "mach aus";   //nur zum versuch mal als const

if(strcmp(einschalten, TESTbuf1) == 0) PDR09  = DEC7SEG[1];
if(strcmp(ausschalten, TESTbuf1) == 0) PDR09  = DEC7SEG[0];;

Warnmeldung beim Kompilieren (Softunge Workbench Fujitsu 16FX)
*** d:\****\main.c(47) W1350C: argument passing incompatible pointer 
types: expected `const char *' actual `unsigned char *': argument 2 of 
`strcmp'
*** d:\****\main.c(48) W1350C: argument passing incompatible pointer 
types: expected `const char *' actual `unsigned char *': argument 2 of 
`strcmp'

Gruß Philipp
OP #2609212
Lesenswert?

Ja das habe ich schon gesehen. Aber leider keine Idee wie ich das ändern 
kann. :-(

Wenn ich aus

unsigned char TESTbuf1[MAXBUF]; // Transmission Buffer

ein

const char TESTbuf1[MAXBUF]; // Transmission Buffer

machen würde. Könnte ich es ja nicht mehr wärend der Kaufzeit ändern 
also mit Daten füllen. Oder?
Gast #2609219
Lesenswert?

> Aber leider keine Idee wie ich das ändern kann.

Du hast zwei [1] Möglichkeiten: Den Datentyp ändern oder dem Compiler 
sagen, wie er es richtig(tm) hinbiegen kann.

Für zweiteres reicht ein einfacher Cast vor Ort.

HTH


[1] Warnungen sind nicht dafür da, ignoriert zu werden. 
Beide-Augen-fest-verschließen-und-mit-dem-Kopf-gegen-die-Betonwand ist 
also keine Alternative.

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