ist es möglich...?



  • Hallo zusammen,

    Mir ist kein beserer Titel eingefallen, also nehmt es bitte so hin.
    Ich hab eine recht seltsame Frage, da mir die Antwort irgendwie schon klar ist. Dennoch möchte ich sie stellen, da ja mit C nichts unmöglich scheint.

    Bsp.:

    int addition()
    {
        int a, b, c;
    
        puts("Geben Sie zwei zu addierende Werte an");
        scanf("%d %d", &a, &b);
    
        c = a + b;
    
        printf("Ergebnis: %d", c);
    
        return 0;
    }
    

    Nun zur eigentlichen Frage: Ist es irgendwie möglich den Wert "c" aus der Funktion addition() zu nutzen, wenn ich diese Funktion in einer anderen Funktion aufrufe, oder muss ich dazu gegebene Funktion so ändern, dass sie "c" zurück gibt?

    Ein einfaches "nein" reicht vollkommen, also keine Witze 😃

    MfG spence



  • wenn du keine Witze willst, dann erzähl uns auch keine. Mit deiner Frage kann ich leider nichts anfangen.



  • Nein, c musst du in irgendeiner Form zurückgeben. Ob du das nun als Return-Wert oder mit einem call-by-reference-Parameter erledigst ist egal.

    Nicht möglich ist das:

    void foo()
    {
        int i = addition(); // i = 0
    
        int c = get_variable_from_other_func(addition, "c"); // nothing like that in C
    }
    

    MfG SideWinder



  • SideWinder schrieb:

    Nein, c musst du in irgendeiner Form zurückgeben.

    Oder Du mußt c global (außerhalb vor den es benutzenden Funktionen) deklarieren.



  • Belli schrieb:

    SideWinder schrieb:

    Nein, c musst du in irgendeiner Form zurückgeben.

    Oder Du mußt c global (außerhalb vor den es benutzenden Funktionen) deklarieren.

    oder du musst c in eine datei speichern, oder du schreibst den wert auf ein blatt papier, das kannste auch außerhalb be-nutzen; sogar noch viel weiter wech.

    m-f-g



  • o-der schrieb:

    Belli schrieb:

    SideWinder schrieb:

    Nein, c musst du in irgendeiner Form zurückgeben.

    Oder Du mußt c global (außerhalb vor den es benutzenden Funktionen) deklarieren.

    oder du musst c in eine datei speichern

    Aber nicht auf ext4. 🤡



  • Ja, ich dachte mir schon, dass da was mit call-by-reference rum kommt.
    Ich werd mir das mal näher ansehen.

    "c" global zu deklarieren ist zwar eine Möglichkeit - hatte ich gar nicht bedacht - , aber irgendwie auch nicht so schön.
    Die Sache mit Zettel und Stift ist auch gut, aber ich mag Behörden nicht, weshalb ich gar nicht erst mit dem Papierkrieg anfange.

    Ach ja... EXT4...
    Ist ne tolle Sache, zumal der Datenverlust eigentlich gar nicht an EXT4 selbst liegt, sondern an der Arbeitsweise der Programme... klick 😉

    MfG spence



  • Spence schrieb:

    ...
    Die Sache mit Zettel und Stift ist auch gut, aber ich mag Behörden nicht, weshalb ich gar nicht erst mit dem Papierkrieg anfange.
    ...
    MfG spence

    aber,
    <klugscheiss> die behörden arbeiten doch überwiegend mit pcs </klugscheiss>
    schmeiss pc weg und kauf block und bleistift.
    🙂



  • [offtopic]Wenn ich beispielsweise BAföG beantrage, renn ich da nicht mit nem PC hin, sondern mit einem großen Stapel Papier, auch Formulare genannt.[/offtopic]

    Greetz


Anmelden zum Antworten