7

次のSAL注釈の違いは何ですか?

void foo(__deref_out_opt PSTR* bar);

void foo(__deref_opt_out PSTR* bar);
4

1 に答える 1

6

out パラメーターは、呼び出し元が文字列へのPSTR*ポインターを受け取るバッファーを渡すことを意味します。

__deref_out_opt では、文字列はオプションです (関数は、呼び出し元が提供するバッファーに NULL を入れます)。

__deref_opt_out では、バッファーはオプションです (呼び出し元は NULL を渡して、出力値に関心がないことを示します)。

おそらく、これらの概念を組み合わせることが可能であり、__deref_opt_out_optそのための修飾子が必要です。

于 2011-01-24T04:57:49.533 に答える