Variablen und Funktionen in mehreren c-Dateien

r34ln00b

Lt. Commander
Registriert
Feb. 2006
Beiträge
1.128
Huhu,

ich bin im Moment verwirrt.
Situation:
Ich habe eine lokale Variable in meiner main-Funktion und rufe daraus ein Funktion auf.
Ist diese Variable, falls ich diese nicht im Parameter übergebe, dann in der Funktion verfügbar?
Ist es dann auch relevant, ob die Funktion in einer h-Datei definiert wurde?

MfG
 
Lokale Variablen sind, wie der Name schon sagt, nur lokal verfügbar.
Wenn du also eine Variable in main() definierst und sie nicht an eine andere Funktion weitergibst, dann ist sie auch nur in main() verfügbar. Wie du schon gesagt hast, ist es möglich die Variable als Parameter anzugeben, womit sie dann auch in der entsprechenden Funktion verfügbar ist.
Ob du deine Funktion in einer Header Datei definierst, oder in der gleichen Datei wie deine main()-Funktion ist nicht relevant.

Gruß
BlackMark
 
Ach, damn, ich bin gar nicht auf die Idee gekommen, das mal schnell auszuprobieren. Sorry.
BlackMark hat schon das Wesentliche gesagt.
 
Trotzdem ist es nicht unrelevant.
In Headerdateien werden Funktionen und globale Variablen deklariert. In dem .c-Dateien definiert und initialisiert. Das ist ein relevanter Standard.
Ebenfalls ist noch bei der Parameterübergabe drauf zu achten, ob man call by value oder call by reference anwendet.
 
@mrcool234: Du hast mich falsch verstanden, meine Aussage bezieht sich nur darauf, dass es technisch gesehen keinen Unterschied macht, ob man die Funktion in einer Header Datei definiert ( & deklariert ) oder nicht.

Zur sauberen und "richtigen" Programmierung gehört natürlich auch die Trennung von Definition, in einer Header Datei, und Deklaration in einer C-Datei.

Gruß
BlackMark
 
Zurück
Oben