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 回答