Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung beim compilieren bzgl. Datentypen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Samuel (Gast)


Lesenswert?

Hallo, bei compilieren meines Quellcodes (in c) tritt bei der Zeile 
"num_chr_snd_sci = strlen((u08*)str_snd_sci_one);" untenstehende 
Fehlermeldung auf. Was ist das Problem?
Gruß
Samuel

unsigned char str_snd_sci_one[80] = "Hello World\n";
unsigned short num_chr_snd_sci = 0;


num_chr_snd_sci = strlen((unsigned char*)str_snd_sci_one);



D:\moogsoft\LVDT Firmware for Development\main\ap\11\src\extLVDT.c(645): 
warning:  #167-D: argument of type "unsigned char *" is incompatible 
with parameter of type "const char *"
von Johannes M. (johnny-m)


Lesenswert?

Strings sind erstens standardmäßig vom Typ char und nicht /unsigned 
char/. Zweitens solltest Du mal in der Dokumentation nachsehen, welche 
Typen strlen für die Parameter erwartet... Die Konversion nach (unsigned 
char *) ist aus mehreren Gründen falsch.
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sieh Dir den Prototypen von strlen an - was für ein Argument erwartet 
das?

  const char*

Du musst einen char* übergeben.

Und was erzeugst Du mit Deinem Typecast?

 unsigned char*

Das ist was anderes.
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.