私は最近、明らかに動作状態にある小さな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. クラスの型をWindowsフォームのコンストラクタに渡し、それをクラスポインタにキャストする必要があります。
- 6. C#/ Salesforce:ジェネリックを制約する必要があります。一般的な制約がありません
- 7. NetworkErrorからネットワークエラー文字列を取得する一般的な方法はありますか、それともビルドする必要がありますか?
- 8. JavaScriptからサーブレットページに値を渡す必要があります
- 9. WSO2 xmlをソープアタッチメントとして渡す必要があります
- 10. 厳密にバージョン管理されたWCFサービスネームスペースは、契約と一意である必要がありますか?
- 11. なぜキャストする必要がありますか?次のコードスニペットで
- 12. JSPから値を渡す必要があります
- 13. mvcの一般...コントローラがモデルから直接それを取得する必要があります表示または表示するデータを渡す必要がありますか?
- 14. SQLConnectionが破棄される前にClose()する必要がありますか?
- 15. リポジトリは、必要なすべてのパラメータがメソッドに渡されることを確認する必要がありますか?
- 16. ReSharper 4.5ベータ版をインストールし、ベータ版VSプラグインを一般的に使用する必要があります
- 17. Android:AESObfuscatorに渡されたランダムなSALTバイトはそのまま維持する必要がありますか?
- 18. 一時パスワードを変更する必要があります
- 19. アセンブリ:次のコードおよび一般的なメモリスタックに値を保存する必要があります
- 20. C#のロックとミューテックスを一緒に使用する必要があります
- 21. 一般的に使用されるライブラリは何ですか?私はXML出力を解析する必要がありますか?
- 22. p:commandButtonが押されたときに、p:inputTextの値をBeanに渡す必要があります。
- 23. カスタムNSURLProtocolはリダイレクトされる必要がありますか、またはクライアントがそれを心配する必要がありますか?
- 24. intに直接アクセスするか、getterからdoubleを取得してキャストする必要がありますか?
- 25. ターゲットディレクトリには何を入れる必要がありますか?
- 26. パスワードフィールドにスペースを入れる必要がありますか?
- 27. なぜconst_castはあなたがキャストするものを述べる必要がありますか?
- 28. Diffで必要とされるプレーフレームワークファイルがありません
- 29. -drawRectの一般的な操作をiPhoneにキャッシュする必要はありますか?
- 30. Flash FLVビデオの再生を可能にするSilverlightコンポーネントの「一般的な」必要性はありますか?