2017-02-24 2 views
2

Wie mein Thema sagt, möchte ich eine Methode kennen, um einen Wert an eine Funktion zu senden, die von einer anderen Funktion aufgerufen wird. Zum Beispiel:Übergeben Sie die Werte so, dass sie weiter unten in der Aufrufliste funktionieren

int main(){ 
int sendingvalue=funtionreturningvalue(); 
int x=0; 
function1(x); 
} 

function1(int x){ 
//some code here 
function2(x); 
} 

function2(int y){ 
//again some code here 
    function3(); 
} 
function3(){ 
//here I need the top value sendingvalue 
} 

Es ist so nutzlos passiert ausdrücklich, dass int sendingvalue immer wieder in allen Funktionen, bis er function3 erreicht. Also, was ist die beste Option, um diesen Wert zu übergeben?

+0

Sie müssen entweder, wie Sie sagten, es an jede Funktion übergeben oder es zu einer globalen Variablen machen, auf die jede Funktion zugreifen kann. – bejado

+0

Schreiben Sie es in eine Datei, und lassen Sie dann die innere Funktion es zurücklesen. – 2501

+0

@ 2501 Das ist effektiv eine globale Variable. – melpomene

Antwort

0

Es gibt 2 Möglichkeiten. Sie machen es entweder zu einer globalen Variable, oder Sie geben es durch jede Funktion.

Um es eine globale Variable zu machen, die folgende Zeile außerhalb alle Ihre Funktionsdefinitionen hinzuzufügen:

int sendingvalue; 

dann Zugriff Sie ändern und sie von jeder Funktion zu lesen. Wenn Sie keine globale Variable verwenden möchten, müssen Sie sie am Stapel übergeben.

+0

danke für die Antwort, Yeh Erstellen einer globalen var ist das Beste, was bisher – namila007

+0

@ namila007: Es gibt sehr wenige Anwendungsfälle, wo eine globale Variable es "* das beste Ding *". – alk

+0

@alk Was genau ist so schlimm an globalen Variablen? – bace1000

Verwandte Themen