我在arduino中的字符串有问题。我知道我不能将这样的不同类型放在一起。我已经尝试了几次转换,但没有成功。
下面的行是我收到的消息:“类型为'const char [35]'和'double'的无效操作数为二进制'operator +'”
sendString("Time: " + (micros () - PingTimer) * 0.001, 3 + " ms");
答案 0 :(得分:0)
免责声明: This question非常相似,但是在不同的堆栈交换站点上(答案是可疑的)。
问题可以简化为以下片段:
void setup() {
"hello" + 3.0;
}
它会产生以下错误消息:
error: invalid operands of types 'const char [6]' and 'double' to binary 'operator+'
许多编程语言都支持将字符序列“加在一起”,而C ++不支持。这意味着您将需要使用一个代表字符序列并实现+
运算符的类。
幸运的是,您已经可以使用这样的类:String
。示例:
void setup() {
String("hello") + 3.0;
}
表达式是从左到右求值的,这意味着最左边的类型必须是String
,换句话说:
String("a") + 1 + 2 + 3
被理解为:
((String("a") + 1) + 2) + 3
String("a") + 1
是字符串,因此(String("a") + 1) + 2
是字符串,依此类推...