Hallo Michael.
Was genau ist jetzt der Unterschied zwischen:
deklarieren - definieren
Beim Deklarieren legst Du Namen und Aufrufsyntax der Variablen
oder der Funktion (Funktionsargumente und Rückgabewert) fest,
so dass der Compiler ab diesem Zeitpunkt eine Syntaxprüfung
vornehmen kann. Dabei wird aber noch kein Speicher reserviert.
Beim Definieren dagegen reserviert der Compiler auch
Speicher für die Variable bzw. die Funktion mit.
Da der Compiler bei einer Variablendeklaration wie z.B.
int a;
auch gleich die vollständige Information
über den benötigten Speicher hat, kann er auch gleich Speicher
für die Variable reservieren. Es handelt sich somit um
eine Deklaration (=Bekanntmachen) + Definition (=Speicherbelegen).
Für eine reine Deklaration einer Variablen in C verwendet
Du deshalb das Schlüsselwort extern :
extern int a;
bedeutet dann, dass die Variable
nicht hier, sondern gewöhnlich in einer anderen (externen) Datei
definiert wird.
Eine Funktion deklarierst Du, indem Du nur ihren Funktionskopf
angibst:
float function(float);
Dies ist eine Kurzschreibweise für
extern float function(float);
Die Funktion wird definiert , indem Du
sie vollständig mit Kopf und Rumpf aufschreibst.
zuweisen - initialisieren
Das hat Moritz ja schon richtig beschrieben: die
Initialisierung ist eine spezielle Zuweisung,
nämlich die erste.
Gruß,
-Andreas.