В чем разница между __deref_out_opt и __deref_opt_out?

В чем разница между следующими аннотациями SAL?

void foo(__deref_out_opt PSTR* bar);

void foo(__deref_opt_out PSTR* bar);

1 ответ

Решение

PSTR* Параметр out означает, что вызывающая сторона передает в буфер, который получает указатель на строку.

В __deref_out_opt строка является необязательной (функция помещает NULL в предоставленный вызывающим буфер).

В __deref_opt_out буфер является необязательным (вызывающий передает NULL, чтобы указать на отсутствие интереса к выходному значению).

Предположительно, можно объединить эти понятия, должно быть __deref_opt_out_opt модификатор для этого.

Другие вопросы по тегам