Forum: Mikrocontroller und Digitale Elektronik String in Array kopieren mit Pointer


von Richi D. (richi-d)


Lesenswert?

Hallo,

mit dem C30 Compiler konnte ich ganz einfach so einen Text in ein Array 
schreiben:
1
unsigned char  TEXT[10];
2
3
strcpy ((char*)&DISPLAY.TEXT[0],"CHARGING");


Mit dem MPLAB XC8 geht das nicht mehr. Es kommt immer diese 
Fehlermeldung:

Main.c:52: warning: (361) function declared implicit int

C:\Program Files (x86)\Microchip\xc8\v1.36\sources\common\strcpy.c:8: 
error: (1098) conflicting declarations for variable "_strcpy" 
(Main.c:52)
(908) exit status = 1
nbproject/Makefile-default.mk:193: recipe for target 
'dist/default/debug/V01.debug.elf' failed
make[2]: Leaving directory 
'D:/Controller_Software/ePack/Display_Controller/V01'
nbproject/Makefile-default.mk:78: recipe for target '.build-conf' failed
make[1]: Leaving directory 
'D:/Controller_Software/ePack/Display_Controller/V01'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed


Was ist falsch?

von Jim M. (turboj)


Lesenswert?

1
#include <string.h>

fehlt.

von Richi D. (richi-d)


Lesenswert?

1
#include <string.h>

Das ist natürlich drin...

von Daniel V. (danvet)


Lesenswert?

Richi D. schrieb:
>
1
#include <string.h>
>
> Das ist natürlich drin...

Dann entspricht die Definition für strcpy() aus string.h nicht der 
Verwendung in main.c

Wieso schreibst du nicht einfach ?
1
strcpy(TEXT,"CHARGING");

außerdem sollte TEXT[] vom Typ char sein, nicht unsigned char

von Mikro 7. (mikro77)


Lesenswert?

> #include <string.h>

Das war auch mein Gedanke, wegen:

> Main.c:52: warning: (361) function declared implicit int

> Das ist natürlich drin...

Zeig mal ein (echtes) Minimalbeispiel wo das Problem auftritt...

>
1
> unsigned char  TEXT[10];
2
> 
3
> strcpy ((char*)&DISPLAY.TEXT[0],"CHARGING");
4
>

...weil das ist fehlerhaft.

Alle Warnungen einschalten kann auch hilfreich sein.

von Richi D. (richi-d)


Lesenswert?

Sorry für all die Aufregung! Das String.h hat echt gefehlt- ich war 
gedanklich in einem anderen C-File.

Danke!

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.