私は最近、明らかに動作状態にある小さなMCF C++アプリケーションを採用しました。まず、コード上でPC-Lintを実行していて、lintはCStringTがFormatに渡されていると不平を言っています。インターネット上の意見は分かれているようだ。 CStingはエラーなしでこのユースケースを処理するように設計されていると言われていますが、その他のもの(MSDN article)は可変引数関数に渡されたときに常にキャストする必要があると言っています)Format/printf(とvarargs一般)に渡されるCStringをキャストする必要がありますか?
1
A
答えて
3
CString可変引数リストの一部として渡されるように注意深く設計されているので、それをそのように使用することは安全です。そして、Microsoftがこの特定の動作を壊さないように注意します。あなたが望むなら、それをそのまま使用しても安全です。
私はキャストを個人的に好きです。ストリングクラスがそのように振る舞うのは一般的な動作ではありません(例:std :: string does not)。精神的に一貫して、それを「安全な」方法で行うほうが良いかもしれません。
P.S .:実装の詳細およびキャスト方法の詳細については、threadを参照してください。
関連する問題
- 1. ラムダでキャストするか、IEnumerableをキャストする必要がありますか?
- 2. なぜこのCString型キャストが必要ですか?
- 3. NewStringUTFに渡されたchar *をクリーンアップする必要がありますか?
- 4. 一般に、要素を挿入する前に要素がセットに含まれているかどうかを確認する必要がありますか?
- 5. なぜインターフェイスでキャストされたオブジェクトをキャストする必要がありますか? Javaで
- 6. 代入で値をキャストする必要があります
- 7. クラスの型をWindowsフォームのコンストラクタに渡し、それをクラスポインタにキャストする必要があります。
- 8. C#/ Salesforce:ジェネリックを制約する必要があります。一般的な制約がありません
- 9. NetworkErrorからネットワークエラー文字列を取得する一般的な方法はありますか、それともビルドする必要がありますか?
- 10. シリアル化されたフォームからオブジェクトをロードした後にオブジェクトをキャストする必要がありますか?
- 11. キャストする前にrownamesをtibbleに変換するためにdata.frameにキャストする必要があります
- 12. パラメータを渡すときに作成されるオブジェクトは削除する必要がありますか?
- 13. 64bitキャスト中にCStringの値が切り捨てられる
- 14. ルーティングとコントローラに配列を渡す必要があります
- 15. 出力を一致させる必要があります
- 16. JavaScriptからサーブレットページに値を渡す必要があります
- 17. EntityコンストラクタにDbContextを渡す必要がありますか?
- 18. マルチプロセスキューをプロセスに渡す必要がありますか?
- 19. パラメータを渡し、戻り値を一致させる関数を作成する必要があります。php
- 20. ElasticSearchはマルチマッチと一致する必要があります
- 21. なぜスカラの一部の関数を渡す必要がありますか?
- 22. PDOException:SQLSTATE [HY000]:一般エラー:7個のパラメーターの数が0から65535の間である必要があります。
- 23. 関数に渡されたポインタを引数として削除する必要がありますか?
- 24. CompletableFuture.exceptionally()に渡された例外ハンドラは、意味のある値を返す必要がありますか?
- 25. 引用符は一致する必要がありますか?
- 26. WSO2 xmlをソープアタッチメントとして渡す必要があります
- 27. React JSのどのディレクトリに一般公開する必要がありますか?
- 28. vbaで一般的な形式からテキスト形式に変換する必要があります
- 29. 厳密にバージョン管理されたWCFサービスネームスペースは、契約と一意である必要がありますか?
- 30. C#Enumは3進でキャストする必要がありますか?