如何访问main函数中的变量?

How to access the variables of a function inside main?

我有一个程序使用 3 个单独的文件,一个用于函数声明的头文件,一个用于定义的 cpp 文件,以及一个用于调用函数的主驱动程序文件。对于我的函数定义,我在这些函数中创建了变量,我希望将这些变量用作在 main 中调用的 另一个 函数的参数。我把自己弄糊涂了,只是想把它表达出来,下面是一个例子。

头文件

void function01(char);
void function02(int, int, char);

Cpp 文件

void function01(char a){

    int var01 = 3;
    int var02 = 4;
    int var03 = 8;
    char a = 'a';
}

void function02(int num1, int num2, int num3){
    int sum = num1 + num2 + num3;    
}   

主文件

int main (void){

    function02(var01, var02, var03);


return 0;
}

我知道现在写的是一个错误。但是我是否可以访问第一个函数中使用的变量,以便我可以在 main 中调用这些相同的变量并将它们传递给我的第二个函数?

How to access the variables of a function inside main?

不可能在调用函数的范围内访问函数的非静态局部变量。这些变量仅在函数执行期间存在。变量命名的对象在调用函数时创建,在函数调用前销毁 returns.

function01 目前完全没用,因为它既没有任何可在函数外部观察到的效果,也没有 return 任何东西。调用该函数后,程序的状态与您未调用该函数时的状态完全相同。该函数也不对其参数执行任何操作。

您可以改为 return 来自函数的值。只能 return 单个值。但是您可以将多个对象分组在 class 中。您可以像这样重写 function01 例如:

struct my_example_class {
    int var01;
    int var02;
    int var03;
    char a;
};

my_example_class
function01(){
    return {3, 4, 8, 'a'};
}

然后调用另一个函数并使用 returned 成员对象作为另一个函数的参数:

auto r = function01();
function02(r.var01, r.var02, r.var03);