Ein Beispiel (3/3)

Dann das Sourcefile 'zahlen.c':

  #include "zahlen.h" 
  int quersumme(int zahl)
  { 
    if (!zahl) return 0; //zahl=0 => quersumme=0 
    else return (zahl%10 + quersumme(zahl/10)); 
       // sonst quersumme=letzte Ziffer + Quersumme der ersten Ziffern 
  } 
  int teilbarDurch(int zahl, int teiler)
  { 
    if (zahl%teiler) return TeiltNicht;  // Teiler teilt Zahl nicht 
    else return Teilt;                   // Teiler teilt Zahl 
  }

Diese Aufteilung mag noch etwas umständlich erscheinen, aber ihre Vorteile sind bei solch kleinen Beispielen schwer demonstrierbar. Aber wenn man sich vorstellt, daß nicht zwei sondern zwanzig Funktionen und nicht zwei sondern fünfzehn Rückgabewerte definiert werden, dann kann man sich vielleicht auch vorstellen, daß eine solche Aufteilung sowohl der Lesbarkeit (ein Nutzer dieser Dateien braucht ja nur das headerfile zu lesen) als auch der Geschwindigkeit des Compilers dient (er braucht das Sourcefile ja nur bei Änderungen neu zu compilieren).
Interessant wird diese Aufteilung auch im Zusammenhang mit Objekten, dazu aber erst später mehr.