c++ - 将函数的当前状态传递给 C/C++ 中的另一个函数

标签 c++ c function calling-convention

有没有办法将一个函数的当前状态传递给 C/C++ 中的另一个函数?我的意思是当前状态下的所有参数和局部变量。例如:

void funcA (int a, int b)
{
    char c;
    int d, e;
    // Do something with the variables.
    // ...
    funcB();
    // Do something more.
}

void funcB()
{
    // funcB() should be able to access variables a,b,c,d & e
    // and any change in these variables reflect into funcA().
}

如果需要 funcB() 类函数,则代码状态不佳。但是能实现吗?

如果有人开始重构具有多个参数的长方法,这会有所帮助。

最佳答案

引入一个通用的结构。

struct State {
    char c;
    int d,e;
};

void funcA(int a, int b){
    State s;
    s.d = 1234; // ...
    // ...
    funcB(s);
}

void funcB(State& s)
{
    //...
}

关于c++ - 将函数的当前状态传递给 C/C++ 中的另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2199969/

相关文章:

c++ - 是否有一对正宽度和长度值会返回负面积?

c++ - 如何使用 dyn.load 获取加载到 R 中的 DLL 中的函数列表

ios - swift ios - 如何从 AppDelegate 在 ViewController 中运行函数

function - 如何使用关联常量来定义数组的长度?

c++ - 需要将二维数组传递给函数并找到行的总和 C++

c++ - `const_iterator` 真的需要与 `iterator` 属于不同的类吗?

c - 在c中生成新变量

c - 用于 malloc() 的这个大小是正确的吗?

c - Libevent:如何暂时禁用,然后重新启用 EV_READ? (在 C 中)

javascript - Javascript 中循环初始化中定义的变量范围?