¿Cuál es la diferencia entre __deref_out_opt y __deref_opt_out?
-
23-10-2019 - |
Pregunta
¿Cuál es la diferencia entre lo siguiente? SAL anotaciones?
void foo(__deref_out_opt PSTR* bar);
void foo(__deref_opt_out PSTR* bar);
Solución
A PSTR*
El parámetro de salida significa que la persona que llama pasa en un búfer que recibe un puntero a una cadena.
En __Deref_out_opt, la cadena es opcional (la función pone nula en el búfer proporcionado por la persona que llama).
En __Deref_opt_out, el búfer es opcional (la persona que llama pasa nulo para indicar desinterés en el valor de salida).
Presumiblemente, es posible combinar estos conceptos, debería haber un __deref_opt_out_opt
Modificador para eso.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow