如果在没有()的Arduino中用函数作为条件的语句工作正常
If statement with function as a condition in Arduino without () works fine
我在Arduino:中的if语句中使用了返回bool的函数作为条件
bool conditionFunc(){
return true;
}
void setup(){}
void loop(){
if (conditionFunc){
}
}
在我看来,我应该做:
if (conditionFunc()){ //added ()
doSometing;
}
但第一个在验证过程中没有引起任何错误,代码也能工作(据我的客户说,我没有构建电路,这是一项简单的工作,所以我不必这么做)。我偶然发现了它。我没有任何名为conditionFunc的变量。在我看来,在Arduino IDE中验证时应该发现错误。
我很困惑。当我学习c++时,我是否错过了一些东西,并且这两种解决方案都可以?也许这是由Arduino解释c++的方式引起的?正如我所说,我没有看到它在起作用,但我不知道为什么我的客户会谎报他想正常工作的事情。至少它应该会在编译过程中引起问题(在Arduino IDE中进行验证)
第一个将函数转换为函数指针,并测试该指针是否为非null。它总是这样,因为每个函数都有一个非空地址,所以它总是doSomething
。
因此,代码将进行编译,如果条件通常为true,则可能看起来"有效";但是当条件为假时它可能出错,但是程序无论如何都继续到CCD_ 2。
相关文章:
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- CPP 带有条件语句的内在事物
- 如果验证容器的大小并在同一条件语句下访问元素,这是很好的做法吗?
- C++ - 这个条件语句写得正确吗?还是有更有效的写法?
- 条件语句简化 - C++
- 如何在C++中定义扩展到条件语句的宏?
- C++ 将二维数组索引与条件语句中的函数值进行比较
- 是否可以编写C++不使用任何条件语句交换输入的函数?
- C++未检查条件语句
- 输出错误命令的条件语句
- 是否可以删除此条件语句
- 如何在Char数组中搜索Char在IF条件语句中
- 可视化优雅C++代码:如何使用 while 循环和条件语句编写更高效的代码
- 输入未正确读取条件语句
- 我可以将循环用作如果其他条件语句
- 是否可以将结构与条件语句完全相同的字符串转换为可以读取和操作的语句?
- 简化重叠和条件语句
- 如果条件语句中的变量分配
- C++模板中的条件语句,只能由编译器基于条件包含
- 在条件语句中接受和使用 char