題:
使用c_str或toCharArray更好嗎?
Peter Bloomfield
2014-02-28 23:03:45 UTC
view on stackexchange narkive permalink

閱讀/嘗試最近的答案時,我很驚訝地看到Arduino的 String 類支持 c_str()方法,就像C ++ std :: string 類。不出所料,它似乎以空終止的 char 數組(即C樣式字符串)的形式獲取了指向字符串內容的指針。

但是,(據我所知)參見)官方Arduino文檔中未提及該方法。另外,在我使用 String 看到的所有示例代碼中,似乎都使用了不同的方法。設置了一個輔助 char 緩衝區,然後使用 String :: toCharArray()將字符串的內容複製到該緩衝區中。顯然這需要兩倍的內存,再加上O(n)複製操作。

看來, c_str()應該是首選方法。有什麼原因導致 toCharArray()更常用?

因為新的Arduino用戶不想分支
一 回答:
zmo
2014-03-01 19:55:11 UTC
view on stackexchange narkive permalink

似乎 c_str()應該是首選方法。出於某種原因,為什麼 toCharArray()更常用?

基本上,我想說的是人們缺乏編寫代碼的知識已經看到。絕對 c_str()更好。但是,我更經常看到的是使用字符數組 char * 字符串而不是 String (而且我也對自己的代碼表示認罪)。 / p>

這是因為Arduino庫是基於凌亂的C和C ++庫以及編碼樣式構建的。試圖使事情變得更容易實際上使它們弄亂了,並使它們變得更加複雜。

這實際上就是為什麼我們有像 xpcc這樣的新項目試圖真正並聰明地使用C ++功能的原因。嵌入式世界。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...