Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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

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
C++ 在Arduino with()中使用函数作为条件的If语句可以正常工作_C++_Arduino - Fatal编程技术网

C++ 在Arduino with()中使用函数作为条件的If语句可以正常工作

C++ 在Arduino with()中使用函数作为条件的If语句可以正常工作,c++,arduino,C++,Arduino,我在Arduino的if语句中使用函数返回bool作为条件: bool conditionFunc(){ return true; } void setup(){} void loop(){ if (conditionFunc){ } } 我认为我应该做: if (conditionFunc()){ //added () doSometing; } 但第一个在验证过程中并没有引起任何错误,代码工作正常(根据我的客户的说法——我没有构建电路——这是一项简单的工作,所以我不必这么

我在Arduino的if语句中使用函数返回bool作为条件:

bool conditionFunc(){
 return true;
}
void setup(){}

void loop(){
  if (conditionFunc){
  }
}
我认为我应该做:

if (conditionFunc()){ //added ()
  doSometing;
}
但第一个在验证过程中并没有引起任何错误,代码工作正常(根据我的客户的说法——我没有构建电路——这是一项简单的工作,所以我不必这么做)。我偶然发现的。我没有任何名为conditionFunc的变量。我认为在Arduino IDE中验证时应该发现错误

我很困惑。当我学习C++时,我是否错过了一些东西,这两种解决方案都可以吗?这可能是由C++对ARDUNO解释的方式造成的吗?
正如我所说,我并没有看到它在起作用,但我不知道为什么我的客户会对他想要正常工作的事情撒谎。至少在编译过程中(在Arduino IDE中进行验证)它会导致问题。

首先将函数转换为函数指针,并测试该指针是否为非空。总是这样,因为每个函数都有一个非空地址,所以它总是
doSomething


因此,代码将被编译,如果条件通常为真,代码可能看起来“工作”;但是当条件为false时,它可能会出错,但程序仍会继续执行doSomething。

首先将函数转换为函数指针,并测试该指针是否为非null。总是这样,因为每个函数都有一个非空地址,所以它总是
doSomething

因此,代码将被编译,如果条件通常为真,代码可能看起来“工作”;但是当条件为false时,它可能会出错,但程序仍继续执行
doSomething