C scope und lifetime



  • Ich habe 2 dringende Fragen zu scope und lifetime von Variblen in c!

    Stimmen diese Aussagen zu scope und lifetime in c von statischen lokalen Variablen?
    a. Die Sichtbarkeit (scope) beginnt mit der Deklaration und mit dem Ende des Programms
    b. Die Lebenszeit(lifetime) beginnt mit der Deklaration und endet mit dem Ende des Programms

    Stimmen diese Aussagen zu statischen globalen Variablen?
    a. Die Sichtbarkeit(scope) beginnt mit der Deklaration und endet mit dem Ende des Programms.
    b. Die Lebenszeit(lifetime) beginnt mit der Deklaration und endet mit dem Ende des Programms.



  • @dorian sagte in C scope und lifetime:

    Ich habe 2 dringende Fragen

    Deutsch: ich habe eine Hausaufgabe mit zwei Fragen, die ich in 3 Stunden abgeben muss



  • Überlege mal: wenn a und b jeweils richtig wären (da die Aussagen jeweils gleich sind, bis auf das fehlende "endet" beim ersten a), dann gäbe es ja keinen Unterschied zwischen statischen lokalen und statischen globalen Variablen.



  • @manni66 nein es ist nicht so, ich habe am Nachmittag eine Klausur in strukturierter Programmierung und diese 2 Fragen bereiten mir als einziges Sorgen ✌🏼
    und ich weiß nicht welches Studium du besucht, aber sowas wie Hausaufgaben gibt es bei uns nicht ^^



  • @Th69 also ich würde bei der ersten Frage auf gar keine tippen und bei der zweiten auf b. Ich weiß aber nicht ob das richtig wäre.



  • Das ist alles Unsinn. Die Deklaration ist eine Stelle im Quelltext, eine räumliche Angabe, und das Ende des Programms ist eine zeitliche Angabe. Es kann also überhaupt nichts geben, das mit der Deklaration beginnt und mit dem Ende des Programms endet.



  • @dorian Ich weiß ja nicht, was du und dein Lehrer unter Deklaration verstehen ...

    Bei der Deklaration wird bekannt gegeben, das ein Objekt irgendwo existieren soll.
    Bei der Definition wird es angelegt (die lifetime beginnt?)

    Eine Definition ist (in C) gleichzeitig auch eine Deklaration. Aber nicht umgekehrt.

    ... und wo die Grenze für lokal ist (Datei- oder Funktionslokal)



  • Eine Definition bestimmt die Lebenszeit, eine Deklaration die Sichtbarkeit.
    Erfolgt die Definition innerhalb einer Funktion, ist die Lebenszeit der Variablen äquivalent zu der der Funktion.
    Erfolgt die Definition außerhalb aller Funktionen, ist die Lebenszeit der Variablen äquivalent zur Laufzeit des Programms.
    Erfolgt die Deklaration innerhalb einer Funktion, ist die Sichtbarkeit nur innerhalb der Funktion garantiert.
    Erfolgt die Deklaration außerhalb aller Funktionen, ist die Sichtbarkeit modulweit (filescope), nicht programmweit.



  • @dorian: Wie schon angesprochen, machen die Aussagen (fast) keinen Sinn.
    Informiere dich z.B. darüber in Scope (in C) und Lifetime (in C).



  • @Wutz sagte in C scope und lifetime:

    Erfolgt die Definition innerhalb einer Funktion, ist die Lebenszeit der Variablen äquivalent zu der der Funktion.

    statische lokale variablen überleben das verlassen einer funktion.



  • This post is deleted!


  • hier geht's zwar um variablen, aber es gib doch auch static-funktionen in c.
    funktions- und variablennamen mit einem static davor, sind nur in ihrer eigenen .c-datei sichtbar.


Log in to reply