Bindungen von Variablen in C
-
Hi!
Wir haben in der Schule gelernt, dass es verschiedene Arten von Bindungen in C gibt. Hab aber komplett den Überblick verloren, was jetzt eigentlich was ist
Ich weiß zwar, dass es eine interne und eine externe Bindung gibt oder eben gar keine Bindung. Aber ich tu mich grade etwas schwer das praktisch umzusetzen.
Könnte mir jemand diese Bindungen vielleicht anhand von Beispielen genauer erklären?
Danke schon mal
Steffen
-
1. Link beim googeln nach "externe Bindung":
http://www2.informatik.uni-halle.de/lehre/c/c_linkag.html
-
ok, externe und interne bindung sind jetzt einigermaßen klar... wenn auch noch nicht so ganz
aber was bedeutet es wenn es gar keine bindung gibt?
Steffen
-
Wie garkeine? Es gibt immer eine Bindung.
-
in meinen unterlagen wird als extrapunkt -keine Bindung aufgelistet, was anscheinend so viel heißt wie block-lokale variablen.
weiß aber nicht viel damit anzufangen
-
Bei globalen Variablen (egal, ob mit interner oder externer Bindung) wird der benötigte Speicherplatz schon beim Laden des Programms angelegt, während die lokalen Variablen auf dem Stack angelegt werden (d.h. dynamisch zur Laufzeit erzeugt und am Ende des Blocks (oder der Funktion) wieder gelöscht), d.h. man kann sagen, diese haben keine Bindung, da sie nicht von anderen Funktionen aus angesprochen werden können.
-
Könntest du mir bitte ein Beispiel geben, komme da etwas durcheinander
-
SteffenF schrieb:
Könntest du mir bitte ein Beispiel geben, komme da etwas durcheinander
int interne_bindung; extern int externe_bindung; void function(void) { int keine_bindung; // lokale variable }
-
cpt. obvious schrieb:
int interne_bindung; extern int externe_bindung;
--> so muss das:
static int interne_bindung; int externe_bindung;
-
Pfaltsch!!! schrieb:
--> so muss das:
ups.