2017-02-24 23 views
2

正如我的主题所述,我想知道一种方法将值发送到由另一个函数调用的函数。例如:将值传递到调用堆栈下方

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 
} 

它是如此没用明确地传递int sendingvalue一次又一次地在所有的功能,直到它达到function3。那么传递这个值的最佳选择是什么?

+0

您或者必须像您说的那样将它传递给每个函数或使其成为任何函数都可以访问的全局变量。 – bejado

+0

将它写入文件,然后让内部函数读回。 – 2501

+0

@ 2501这实际上是一个全局变量。 – melpomene

回答

0

有2个选项。您可以将其设为全局变量,也可以将其传递给每个函数。

要使它成为一个全局变量,加之外所有的函数定义如下一行:

int sendingvalue; 

然后您可以访问和修改任何函数读取它。如果你不想使用全局变量,你必须沿着堆栈传递它。

+0

谢谢你的回复,你创建一个全局变量是目前为止最好的事情 – namila007

+0

@ namila007:在全局变量“*最好的东西*”的情况下,很少有用例。 – alk

+0

@alk关于全局变量究竟有什么不好? – bace1000