Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
以下SAL注释有什么区别?
void foo(__deref_out_opt PSTR* bar); void foo(__deref_opt_out PSTR* bar);
out 参数意味着调用者传入一个PSTR*缓冲区,该缓冲区接收指向字符串的指针。
PSTR*
在 __deref_out_opt 中,字符串是可选的(函数将 NULL 放入调用方提供的缓冲区中)。
在 __deref_opt_out 中,缓冲区是可选的(调用者传递 NULL 表示对输出值不感兴趣)。
据推测,可以将这些概念结合起来,应该有一个__deref_opt_out_opt修饰符。
__deref_opt_out_opt