Linux C Programmierung Tutorial Teil 26 – Strukturen und Funktionen

In einem unserer vorherigen Befehlszeilen-Tutorials haben wir uns mit dem Konzept der Strukturen beschäftigt. Anhand leicht verständlicher Beispiele diskutierten wir grundlegende Dinge wie z.B. was sind Strukturen und warum werden sie benötigt. In diesem Tutorial werden wir darüber hinaus diskutieren, wie Strukturen und Funktionen gemeinsam genutzt werden können.

Strukturen und Funktionen in der Programmiersprache C

Bevor wir beginnen, lassen Sie uns schnell aktualisieren, wie eine Struktur deklariert wird. Hier ist ein Beispiel:

struct emp_details {

int emp_code;
int emp_age;

};

Das Schlüsselwort struct – das bei der Definition einer Struktur in C obligatorisch ist – bedeutet hier also den Anfang der Deklaration. Es folgt ein Tag, oder Sie können den Namen der Struktur angeben. In Klammern stehen dann zwei ganzzahlige Variablen, die als Teil dieser Struktur gruppiert werden.

Um diese Struktur nutzen zu können, müssen Sie zunächst ihre Instanz oder ihr Objekt definieren. Du kannst das auf folgende Weise tun:

emp_details obj;

Und dann kann auf die Strukturmitglieder wie folgt zugegriffen werden:

obj.emp_code
obj.emp_age

Nun, was die Funktionen betrifft, kann eine Funktion sowohl Strukturen zurückgeben als auch Strukturen in Form von Argumenten akzeptieren. Hier ist ein Beispiel:

#include <stdio.h>

struct emp_details {

int emp_code;
int emp_age;

};

struct emp_details fill(int code, int age)
{
struct emp_details obj;
obj.emp_code = code;
obj.emp_age = age;

return obj;
}

int main()
{
int x,y;

printf(„Enter employee code: „);
scanf(„%d“, &x);

printf(„\n Enter employee age: „);
scanf(„%d“, &y);

struct emp_details new_obj;

new_obj = fill(x,y);

printf(„\n The employee code and age you entered are: %d and %d“, new_obj.emp_code, new_obj.emp_age);

return 0;
}

Hier haben wir also in diesem Beispiel eine Funktion „fill“, die zwei ganze Zahlen akzeptiert, sie als Code und Alter behandelt, eine Struktur füllt, die auf diesen Informationen basiert, und die Struktur nach Wert an den Aufrufer der Funktion zurückgibt.

Nun, wie ich bereits oben in einer Anweisung erwähnt habe, können Strukturen auch als Funktionsargumente übergeben werden. Es folgt ein Beispiel, bei dem die Funktion ‚fill‘ eine ‚emp_details‘ Struktur als Argument akzeptiert.

#include <stdio.h>

struct emp_details {

int emp_code;
int emp_age;

};

void fill(struct emp_details obj)
{
printf(„\n The employee code and age you entered are: %d and %d“, obj.emp_code, obj.emp_age);
}

int main()
{
int x,y;

printf(„Enter employee code: „);
scanf(„%d“, &x);

printf(„\n Enter employee age: „);
scanf(„%d“, &y);

struct emp_details new_obj;
new_obj.emp_code = x;
new_obj.emp_age = y;

fill(new_obj);

return 0;
}

Und hier ist die Ausgabe in meinem Fall:

Enter employee code: 36 
 Enter employee age: 29

The employee code and age you entered are: 36 and 29

Weiter geht es, wie bei normalen Variablen, Arrays und mehr, es kann auch Hinweise auf Strukturen geben. Hier ist ein Beispiel:

struct emp_details *ptr;

Wie immer sind Zeiger nützlich, wenn die Strukturgröße groß ist, und Sie senden sie als Argument an eine Funktion. Im Idealfall können Sie auf Strukturvariablen über Pointer-Objekte zugreifen:

(*ptr).emp_code
(*ptr).emp_age

Aber der Einfachheit halber erlaubt C, * und . wegzulassen und stattdessen ‚->‘ zu verwenden. Nachfolgend ein Beispiel:

ptr->emp_code
ptr->emp_age

Hier ist ein Beispiel, das den Strukturzeiger verwendet:

#include <stdio.h>

struct emp_details {

int emp_code;
int emp_age;

};

void fill(struct emp_details *obj)
{
printf(„\n The employee code and age you entered are: %d and %d“, obj->emp_code, obj->emp_age);
}

int main()
{
int x,y;

printf(„Enter employee code: „);
scanf(„%d“, &x);

printf(„\n Enter employee age: „);
scanf(„%d“, &y);

struct emp_details new_obj;
new_obj.emp_code = x;
new_obj.emp_age = y;

fill(&new_obj);

return 0;
}

Dies ist zwar das gleiche Beispiel, das wir zuvor verwendet haben, aber die Änderungen – da wir jetzt einen Strukturzeiger verwenden – sind fett gedruckt.

Fazit

In diesem Tutorial haben wir unser Verständnis von Strukturen erweitert, indem wir diskutiert haben, wie Funktionen und Strukturen gemeinsam genutzt werden können. Wir empfehlen Ihnen, die Beispiele, die wir hier verwendet haben, auf Ihrem lokalen System auszuprobieren. Im Falle von Zweifeln oder Fragen hinterlassen Sie unten einen Kommentar.

Das könnte Dich auch interessieren …