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);
¿Fue útil?

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
scroll top