在 if 语句中使用 & 运算符

Using & operator in if statements

#include <IRremote.h>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}

 void loop(){
if (irrecv.decode(&results)){
    Serial.println(results.value, HEX);
    irrecv.resume();
}
}

如果检查这里会怎样,请解释工作 also.how 如果工作正常?

因为 & 运算符用于该变量的地址。在 if 语句中使用它始终为真,因为地址不会为 0。

因此您的 Do_somthing() 函数将始终被调用。

编辑:

在编辑后的代码中,&运算符用于传递函数中该变量的地址irrecv.decode()。

irrecv.decode(&results)

如果收到代码,上述函数将 return 为真,如果尚未收到任何代码,则为假。收到代码后,信息将存储到“结果”中。

更多信息:https://www.pjrc.com/teensy/td_libs_IRremote.html