Problem mit Struct und Strings

Gast #608047
Lesenswert?

Hallo zusammen,
habe folgendes Problem, für welches ich keine Lösung finde:

Ich möchte eine Struktur mit Werten und Strings füllen, diese soll dann 
im internen Flash abgespeichert werden.

typedef struct {
    REAL     Value;
    INT8U    Description[128];
    INT8U    StatusFlags;
    }Input;

Input     input_flash[10];

input_flash[0].Value = a_inputs[0].Value;

input_flash[0].Description = a_inputs[0].Description;

Die Übergabe von dem REAL Wert value klappt.
Nur bei der Übergabe des Textes in Description gibt folgende 
Fehlermeldung:
  incompatible types in assignment

die Übergabe ans Flash klappt auch.
Danke für eure Hilfe
#608064
Lesenswert?

LightCo wrote:

> Nur bei der Übergabe des Textes in Description gibt folgende
> Fehlermeldung:
>   incompatible types in assignment

C hat keinen eigenen String Datentyp. Als Ersatz muss ein
Array herhalten.
Aber: mit Arrays als Ganzes kann man praktisch keine
Operationen durchführen. Noch nicht mal Zuweisen oder
Vergleichen. Alles muss über Schleifen auf die einzelnen
Arrayelemente runtergebrochen werden.

Aber: Da man das häufig braucht, bringt jeder C Compiler
eine Sammlung von Funktionen zur Stringverarbeitung mit
http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F

und beim gcc gibt es dann noch spezielle Funktionen, die benutzt
werden, wenn der String im Flash und nicht im SRAM steht.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Vereinfachung_f.C3.BCr_Zeichenketten_.28Strings.29_im_Flash

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