5
A
答えて
9
者は、MicrosoftのSAL注釈から古い装飾マクロの(the newer onesは現在首都で始まる、異なる筐体に従う)の一部です。これらはコンパイルにはまったく影響がありません(VS 2010の下では拡張されていません)、インラインAPIドキュメントのためにそこにあります。
__in
:このパラメータは、関数への入力です(読み取り専用、呼び出し元の初期化)。__out
:このパラメータには、関数が返すときの出力(書き込み専用、呼び出し元の初期化)が含まれます。__in_opt
:_in
および_opt
,_opt
から形成される化合物の注釈であり、パラメータはオプションであり、デフォルト値(通常NULL
)に設定することができます。
古い装飾の詳しい説明はhereです。
+0
非常に非常に感謝しています。私は長い時間を探してきました。私はここで最後に答えを見つけました。 – Zcube
3
Nercolisの回答として、これらはSALアノテーション属性です。ただし、これらは、内部またはのAPIドキュメントの場合のみではありません。実際の目的はコード分析です。 /analyzeコンパイラオプション(プロジェクトプロパティ、コード解析 - >一般)を使用してプロジェクトをビルドすると、コーディングの問題を見つける上で重要な役割を果たします。
たとえば、特定のポインタ引数が__in
と表示されている場合、NULLポインタは渡されてはなりません。この関数はnullをチェックせず、SEHを引き起こす可能性があります。 __in_opt
引数はnullでもかまいません。コンパイラは何らかの問題を発見すると、それを警告として報告します。 this articleを参照してください。
関連する問題
- 1. 意味2ルータリンク意味URLあり
- 2. 意味
- 3. 意味
- 4. 意味
- 5. 意味
- 6. 意味
- 7. 意味
- 8. 意味
- 9. 意味
- 10. 意味
- 11. 意味
- 12. 意味
- 13. 意味
- 14. 意味&
- 15. 意味
- 16. 意味
- 17. 意味
- 18. 意味
- 19. 意味
- 20. "スレッドダンプ"の意味
- 21. 'sp_renamedb'の意味
- 22. イメージヒストグラムの意味
- 23. ":"の意味は?
- 24. pub.packageの意味
- 25. `/ * @ 'の意味は?
- 26. 「#」の意味は?
- 27. PHPの意味 '//'
- 28. 式の意味
- 29. VK_DEFINE_NON_DISPATCHABLE_HANDLEの意味
- 30. 「...」の意味と 『##』
これらはキーワードではなく、MicrosoftのSAL注釈 – Necrolis
はそれが実質的な影響を与えないということですか?コンパイラのための – Zcube
いいえ、コーダーのために彼/彼女がAPIを正しく使用するのを助けるべきです。 – Necrolis