将指针与C ++中的字节进行比较(Arduino)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将指针与C ++中的字节进行比较(Arduino)相关的知识,希望对你有一定的参考价值。
我正在玩Arduino,我想比较来自MQTT消息的字符串。
这是我捕获传入消息的代码:
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
int i=0;
for (i=0;i<length;i++) {
Serial.print((char)payload[i]);
}
Serial.println();
Serial.println((char)payload[0]);
if(topic==topic_conmutador){
if(strcmp((char*)(payload[0]), "0")==0)
digitalWrite(built_in_PIN, LOW);
}
}
行if(strcmp((char*)(payload[0]), "0")==0){
给我这个错误信息:
error: invalid conversion from 'byte {aka unsigned char}' to 'const char*' [-fpermissive]
我究竟做错了什么?我只想检查传入消息的第一个字符是否为0。
答案
你可能只想要:
if (payload[0] == '0')
这是将字符串payload
的第一个字符与字符'0'
进行比较。
注意:"0"
是一个字符的字符串类型,'0'
是char类型。
以上是关于将指针与C ++中的字节进行比较(Arduino)的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将两个任意函数与 C++17 中的 std::any 进行比较?