|
发表于 2014-6-7 22:00:52
|
显示全部楼层
回應一下你對 String 的見解:
代码里面有注解,其中最令我讶异的是Srting的转换,一般网上都是利用乘法的方式将字串转成INT。而书里写的是利用toInt的方式直接转过去,挺好挺快的。
此外还有其他用法例如.contact( )将INT转换成字串或是连接字串。atoi (ASCII to int) 或是atol (ASCII to long)
一般單片機要做的東西不會太複雜, 資源也很珍貴, 而 String 之類的 class 比較耗資源.
所以你會看到網上的教學, 一般都不會使用 String 類, 並非作者不知道有 String 類, 而是大家考慮到資源及速度的因素, 直接用簡單的方式去做.
在 serial communization 中, 資料是一個個 byte 傳過來, 轉換成數值只需減去 '0' 再不斷 * 10 相加就可以.
如果用到 toInt, 先要把資料合成 String, 再把 String 轉回 integer, 當中對資源及速度上均沒好處, 所以大多會採用 一個個加乘的方法.
當然, 如果只需要把程式做出來, String class 可以提供很大幫助.
但如果習慣了之後, 將來就很難改過來, 簡單的轉換也可能會依賴 String class 去完成.
不是說 String 不好, 但可以的話, 還是先想想是否有其他更好(速度及資源方面作考慮)的方法可以取代, 最後才選用 String.
比方說接收 串口資料時, 如果長度是已知有限的話, 就算送來的是一個 string, 用 array 加 index 把資料填上去, 就比用 String class 把 一個個 byte 用 .concat 連上去好得多了.
|
|