这两句程序有区别吗?
char in=(char)Serial.read();inputString+=in;
和
char in=Serial.read();
inString+=(char)in;
有区别吗? “Super169 ”的精彩回答
http://www.geek-workshop.com/thread-14981-1-1.html
String class 的特性, 當 operator "+" 之後是 numeric type, 會自動把數值先轉成 字符再加上去.
"1" 的數值就是 49, 由於 Serial.read() 的結果是 int type, 當你用 comdata += Serial.read() 時, comdata 是 String, Serial.read() 是 int, 就會執行 String "+" int 的 operation.當你輸入第一個字 "1" 時, 就會先把 "1" (int value 為 ASCII 值, 即 49) 轉成 "49", 然後再連接上去.之後都是一樣了.
當你加上 (char) 的轉換後, comdata += (char)Serial.read(), 就變成是 String "+" char 的 operation, 這時就不需要任何轉換而直接連上去了. ken0137 发表于 2015-5-17 20:21 static/image/common/back.gif
“Super169 ”的精彩回答
http://www.geek-workshop.com/thread-14981-1-1.html
谢谢回复
页:
[1]