Hi Leute!

Ich hab mir mal überlegt mit C anzufangen und so.
Hab da auch gleich mal eine Frage.
Ich verstehe den Verwendungszweck von Header und Source-Dateien nicht so ganz.
Also Header-Dateien haben ja nur Deklarationen von Datentypen und Funktionsköpfe.

Ich habe bisher immer nur mit Java gearbeitet, ich würde also jetzt einfach mal so sagen, dass eine Header Datei eine Art Interface wie in Java ist.

Die Source Datei hingegen hat dann die eigentliche Implementierung der Funktionen und Variablen.
Wieso trennt man das? Wieso packt man das denn nicht einfach in eine Datei und gut ist?
Ich mein, wenn ich ne Source Datei schreibe, brauche ich doch sowieso den Header dazu.

Ich hab mir ein Buch zur Spieleprogrammierung mit dem Gameboy geholt, weil ich Gameboy sowieso mag :>
Und hab mich mal an einer Header-Datei versucht.
Code:
#ifndef CHARACTERS_H
#define CHARACTERS_H
extern struct party
{
    unsigned char partySize;
    struct character[] characters;
}
extern struct character
{
    char name[8];
    unsigned char level;
    unsigned short hp,hp_max,mp,mp_max,exp,expNext;
    unsigned char str,def,agi,spr,rfx,hit;
}


void addToParty(struct character);
void deleteFromParty(struct character);
#endif
Ist das so richtig? Das Buch erklärt leider nur die Grundlagen wie schleifen etc, was ich ja bereits kenne.