Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 如何更改函数中的全局布尔值?_Function_Arduino_Global Variables - Fatal编程技术网

Function 如何更改函数中的全局布尔值?

Function 如何更改函数中的全局布尔值?,function,arduino,global-variables,Function,Arduino,Global Variables,您好:D作为Arduino的实践,我正在尝试制作一个可以重复使用的函数来更改循环函数中的全局变量。例如,我有两个全局布尔值answer1和answer2,我有一个void函数,输入布尔值。然而,当我运行代码时,全局变量没有改变,我确信我没有正确理解什么 bool answer1, answer2; void setup() { answer1 = false; answer2 = false; } void loop() { grading(answer1); gra

您好:D作为Arduino的实践,我正在尝试制作一个可以重复使用的函数来更改循环函数中的全局变量。例如,我有两个全局布尔值answer1和answer2,我有一个void函数,输入布尔值。然而,当我运行代码时,全局变量没有改变,我确信我没有正确理解什么

bool answer1, answer2;

void setup() {
  answer1 = false;
  answer2 = false;
}

void loop() {    
  grading(answer1);
  grading(answer2);
}

void grading(bool _answer)
{
  _answer = true;
}
使用参考资料

bool answer1, answer2;

void setup() {
  answer1 = false;
  answer2 = false;
}

void loop() {    
  grading(answer1);
  grading(answer2);
}

void grading(bool& _answer)
{
  _answer = true;
}
…或指针

bool answer1, answer2;

void setup() {
  answer1 = false;
  answer2 = false;
}

void loop() {    
  grading(&answer1);
  grading(&answer2);
}

void grading(bool* _answer)
{
  *_answer = true;
}

使用引用:
bool&\u answer
,因为默认情况下变量是通过副本传递的,所以您要更改原始变量的副本。或者可能
bool grading(){return true;}
answer1=grading()但它可能过于简化,因此可能不适用。或者您可以用C编写它。非常感谢您的评论:D我意识到我只是用函数获取变量的副本,而引用调用正是我所需要的:D。