-> Hier kostenlos registrieren
Hallo zusammen,
Ich programmiere in SCL mit TIA und möchte auf einen Ringpuffer mit Hilfe von Zeiigern zugreifen. Aus C kenne ich es, dass man Zeiger erstellen kann, die auf eine Struktur zeigen.
Ich habe zum Beispiel folgende Struktur, aus der ich mir einen Array mit z.B. 15 Elementen mache:
Dann erstelle ich mir von dieser Struktur einen Pointer
Nun kann ich dem struct_ptr eine Adresse zuweisen, wo der Ringpuffer anfangen soll.
Nachdem ich dann meinen Ringpuffer initialisiert habe, kann ich mit Hilfe des Pfeil-Operators (->) auf die verschieden Elemente der Struktur zugreifen, also z.B.:
Wenn ich auf das nächste Element des Ringpuffers zugreifen will, lasse ich den struct pointer auf das nächste element zeigen, usw.
Gibt es bei Siemens auch die Möglichkeit in einer ähnlichen Art und Weise auf die Elemente einer Struct in einem Ringpuffer zuzugreifen oder geht das nur mit Offsets? Bei größeren Strukturen wird das nämlich schnell mal unübersichtlicht.
Ich programmiere in SCL mit TIA und möchte auf einen Ringpuffer mit Hilfe von Zeiigern zugreifen. Aus C kenne ich es, dass man Zeiger erstellen kann, die auf eine Struktur zeigen.
Ich habe zum Beispiel folgende Struktur, aus der ich mir einen Array mit z.B. 15 Elementen mache:
Code:
typedef struct bsp_struct
{
struct bsp_struct *forward_ptr;
int messwert;
int mess_nr;
}Bsp_Struct;
Dann erstelle ich mir von dieser Struktur einen Pointer
Code:
Bsp_Struct *struct_ptr;
Nun kann ich dem struct_ptr eine Adresse zuweisen, wo der Ringpuffer anfangen soll.
Code:
struct_ptr = (Bsp_Struct*)LIST_ORIGIN;
Nachdem ich dann meinen Ringpuffer initialisiert habe, kann ich mit Hilfe des Pfeil-Operators (->) auf die verschieden Elemente der Struktur zugreifen, also z.B.:
Code:
struct_ptr->messwert = 42;
struct_ptr->mess_nr = 2;
Wenn ich auf das nächste Element des Ringpuffers zugreifen will, lasse ich den struct pointer auf das nächste element zeigen, usw.
Code:
struct_ptr = struct_ptr->forward_ptr;
Gibt es bei Siemens auch die Möglichkeit in einer ähnlichen Art und Weise auf die Elemente einer Struct in einem Ringpuffer zuzugreifen oder geht das nur mit Offsets? Bei größeren Strukturen wird das nämlich schnell mal unübersichtlicht.