Funktionen

Wenn Du im C-Programm einen "Ausdruck" hineinschreibst, den Du selbst erfunden hast, und wenn Du dann noch die beiden runden Klammern schreibst: (), dann hast Du eine Funktion.

Eine einfache Funktion
So sieht eine einfache Funktion aus

Aber der Reihe nach! printf() ist ja auch eine Funktion. Wer kann sich erinnern? Alle, die jetzt nicht dem Link von printf gefolgt sind, haben es schwerer und müssen sich daran erinnern, dass wir dort unter printf gesagt haben, dass printf() eine Funktion ist. Ja, printf() in Deinem Programm ist der Funktionsaufruf (so nennt man das) und hat eine Funktionsdeklaration in der Headerdatei "stdio.h".


Eine Funktion kann sehr einfach aufgebaut sein. Eine solche Funktion hat im einfachsten Fall kein Argument (void). Hier ein Beispiel:

/* stars.c */

#include <stdio.h> /* printf */

/* Funktionsdeklaration */

void starline(void);

 

int main() /* Hauptprogramm */

 {

  starline();

  printf("Kleine Tabelle\n");

  starline();

  printf("Kernighan\n");

  printf("and Ritchie\n");

  printf("C\n");

  starline();

 }

 

/* Funktionsdefinition */

 void starline(void) // Wenn in der Klammer nichts oder void steht,

                            //dann ist kein Argument vorhanden.

  {

  int j;

  for (j=0; j<14; j++)

       printf("*");

  printf("\n");    

  }/* starline */

 

Eine Funktion kann aber auch ein Argument oder mehrere haben. Eine solche Funktion hat im einfachsten Fall ein Argument. Was ist ein Argument? Ein Argument ist in etwa eine Variable, die in die Funktion "hineinfließt".

/* stararg.c */

#include <stdio.h> /* printf */

void starline(char);   //(char): Wenn in der Klammer eine Sache steht,

                             //dann ist ein Argument vorhanden.            

int main() /* Hauptprogramm */

 {

  starline('-');

  printf("Kleine Tabelle\n");

  starline('-');

  printf("Kernighan\n");

  printf("and Ritchie\n");

  printf("C\n");

  starline('.');

 }

 

 /* Funktionsdefinition */

 void starline(char che)

  {

  int j;

  for (j=0; j<14; j++)

      printf("%c", che);

  printf("\n");    

  }/* starline */


Funktion mit Rückgabewert

Eine wichtige Erkenntnis: rand() schreibt man immer nur einmal. Dann nämlich wird ein Pseudozufallswert zurückgegeben. Und es ist wichtig, dass man den Ausdruck als Wert (Rückgabewert) sieht.