c - 传递值以进一步向下调用堆栈

标签 c function parameter-passing

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

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 是没有用的。那么传递这个值的最佳选择是什么?

最佳答案

有两个选项。您要么将其设为全局变量,要么将其传递给每个函数。

要使其成为全局变量,请在所有函数定义之外添加以下行:

int sendingvalue;

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

关于c - 传递值以进一步向下调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42448587/

相关文章:

c# - ASP.net 4.0 c# 中的可选参数

c - 是否有识别互斥所有者句柄的 pthreads API?

c - 如何使用 C 在 QT 应用程序中获取处理器制造商 ID

c - 如何在 C -> ruby​​ 接口(interface)中返回变量?

c - 函数返回值定义为常量

java - Java 是 "pass-by-reference"还是 "pass-by-value"?

c - 如何让线程正确执行

python - 使用函数的结果作为搜索条件

javascript - 在函数式编程的 javascript 中,返回回调而不是仅仅调用回调有什么惩罚吗?

parameter-passing - 在react-native android应用程序中使用axios传递参数