如何访问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);
我有一个程序使用 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);