Programmierung · 3 min read · Nov 18, 2025

Linux C Programmierung Tutorial Teil 26 - Strukturen und Funktionen

In einem unserer vorherigen Tutorials zur Befehlszeile haben wir das Konzept der Strukturen angesprochen. Anhand leicht verständlicher Beispiele haben wir grundlegende Dinge wie das, was Strukturen sind und warum sie benötigt werden, diskutiert. In diesem Tutorial werden wir erörtern, wie Strukturen und Funktionen zusammen verwendet werden können.

Strukturen und Funktionen in der C-Programmiersprache

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

struct emp_details {  
  
 int emp_code;  
 int emp_age;  
   
};

Hier steht das Schlüsselwort struct - das obligatorisch ist, wenn Sie eine Struktur in C definieren - für den Beginn der Deklaration. Es folgt ein Tag oder Sie können sagen, der Name der Struktur. Dann haben Sie in Klammern zwei ganzzahlige Variablen, die als Teil dieser Struktur zusammengefasst sind.

Um diese Struktur zu verwenden, müssen Sie zuerst ihre Instanz oder ihr Objekt definieren. Das können Sie folgendermaßen tun:

emp_details obj;

Und dann können die Strukturmitglieder folgendermaßen zugegriffen werden:

obj.emp_code  
obj.emp_age

Nun zu den Funktionen: Eine Funktion kann Strukturen zurückgeben und auch Strukturen in Form von Argumenten akzeptieren. Hier ist ein Beispiel:

#include   
  
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("Geben Sie den Mitarbeitercode ein: ");  
 scanf("%d", &x);  
   
 printf("\n Geben Sie das Alter des Mitarbeiters ein: ");  
 scanf("%d", &y);  
   
 struct emp_details new_obj;  
   
 new_obj = fill(x,y);  
   
 printf("\n Der Mitarbeitercode und das Alter, das Sie eingegeben haben, sind: %d und %d", new_obj.emp_code, new_obj.emp_age);  
   
 return 0;  
}

In diesem Beispiel haben wir eine Funktion ‘fill’, die zwei Ganzzahlen akzeptiert, sie als Code und Alter behandelt, eine Struktur basierend auf diesen Informationen ausfüllt und die Struktur durch Wert an den Aufrufer der Funktion zurückgibt.

Wie ich bereits in einer vorherigen Aussage erwähnt habe, können Strukturen auch als Funktionsargumente übergeben werden. Folgendes ist ein Beispiel, bei dem die Funktion ‘fill’ eine ‘emp_details’-Struktur als Argument akzeptiert.

#include   
  
struct emp_details {  
  
 int emp_code;  
 int emp_age;  
   
};  
  
void fill(struct emp_details obj)  
{  
 printf("\n Der Mitarbeitercode und das Alter, das Sie eingegeben haben, sind: %d und %d", obj.emp_code, obj.emp_age);  
}  
  
int main()  
{  
 int x,y;  
   
 printf("Geben Sie den Mitarbeitercode ein: ");  
 scanf("%d", &x);  
   
 printf("\n Geben Sie das Alter des Mitarbeiters ein: ");  
 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:

Geben Sie den Mitarbeitercode ein: 36   
 Geben Sie das Alter des Mitarbeiters ein: 29   
   
 Der Mitarbeitercode und das Alter, das Sie eingegeben haben, sind: 36 und 29

Weiter geht’s: Wie normale Variablen, Arrays und mehr können auch Zeiger auf Strukturen existieren. Hier ist ein Beispiel:

struct emp_details *ptr;

Wie immer sind Zeiger nützlich, wenn die Strukturgröße groß ist und Sie sie als Argument an eine Funktion übergeben. Idealerweise können Sie Strukturvariablen über Zeigerobjekte folgendermaßen zugreifen:

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

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

ptr->emp_code  
ptr->emp_age 

Hier ist ein Beispiel, das einen Strukturzeiger verwendet:

#include   
  
struct emp_details {  
  
 int emp_code;  
 int emp_age;  
   
};  
  
void fill(struct emp_details *obj)  
{  
 printf("\n Der Mitarbeitercode und das Alter, das Sie eingegeben haben, sind: %d und %d", obj->emp_code, obj->emp_age);  
}  
  
int main()  
{  
 int x,y;  
   
 printf("Geben Sie den Mitarbeitercode ein: ");  
 scanf("%d", &x);  
   
 printf("\n Geben Sie das Alter des Mitarbeiters ein: ");  
 scanf("%d", &y);  
   
 struct emp_details new_obj;  
 new_obj.emp_code = x;  
 new_obj.emp_age = y;  
   
 fill(&new_obj);  
  
 return 0;  
}

Obwohl dies dasselbe Beispiel ist, das wir zuvor verwendet haben, sind die Änderungen - da wir jetzt einen Strukturzeiger verwenden - fett hervorgehoben.

Fazit

In diesem Tutorial haben wir unser Verständnis von Strukturen erweitert, indem wir erörtert haben, wie Funktionen und Strukturen zusammen verwendet werden können. Sie sind eingeladen, die Beispiele, die wir hier verwendet haben, auf Ihrem lokalen System auszuprobieren. Bei Fragen oder Zweifeln hinterlassen Sie bitte einen Kommentar unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.