В чем разница между __deref_out_opt и __deref_opt_out?
-
23-10-2019 - |
Вопрос
В чем разница между следующим Саль аннотации?
void foo(__deref_out_opt PSTR* bar);
void foo(__deref_opt_out PSTR* bar);
Решение
А PSTR*
Параметр Out означает, что вызывающий абонент проходит в буфере, который получает указатель на строку.
В __deref_out_opt строка не является необязательной (функция помещает нулевое в буфере, предоставленном вызывающим абонентом).
В __deref_opt_out буфер является необязательным (вызывающий абонент передает NULL, чтобы указать неинтересту в выходном значении).
Предположительно, можно объединить эти концепции, должен быть __deref_opt_out_opt
модификатор для этого.
Не связан с StackOverflow