質問:
c_strまたはtoCharArrayを使用する方が良いですか?
Peter Bloomfield
2014-02-28 23:03:45 UTC
view on stackexchange narkive permalink

最近の回答を読んだり試したりすると、Arduinoの String クラスが c_str()メソッドをサポートしていることに驚きました。 C ++ std :: string クラス。予想どおり、文字列の内容へのポインタは、nullで終了する char 配列(つまり、Cスタイルの文字列)として取得されているように見えます。

ただし、(私ができる限り)参照)その方法は、Arduinoの公式ドキュメントには記載されていません。さらに、 String を使用して見たすべてのサンプルコードでは、別のアプローチが使用されているようです。セカンダリ char バッファが設定され、 String :: toCharArray()を使用して文字列の内容がそこにコピーされます。これには明らかに2倍のメモリとO(n)コピー操作が必要です。

c_str()が推奨されるアプローチのようです。 toCharArray()がより一般的に使用される理由はありますか?

新しいArduinoユーザーは分岐したくないからです
1 回答:
zmo
2014-03-01 19:55:11 UTC
view on stackexchange narkive permalink

c_str()が推奨されるアプローチのようです。 toCharArray()がより一般的に使用される理由はありますか?

基本的に、コードを実行している人々からの知識が不足していると思います。見たことある。間違いなく c_str()の方が優れています。しかし、私がさらに頻繁に目にするのは、 String の代わりに文字配列 char * 文字列を使用することです(そして私自身のコードでもその罪を認めます)。

これは、ArduinoライブラリがCおよびC ++ライブラリとコーディングスタイルの乱雑なセットに基づいて構築されているためです。物事を簡単にしようとすると、実際には混乱して複雑になります。

そのため、 xpccのような新しいプロジェクトでC ++の機能を実際にスマートに使用しようとしています。埋め込まれた世界。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...