¿Qué tipo de valor de retorno debería definir una función de estructura de retorno de C?
Primero debes definir struct tagStudent {. ..} . es una variable global
Para el lenguaje C estándar, debes usar parámetros de puntero
void foo(struct tagStudent *output)
No tiene sentido para el retorno value es un puntero, porque la persona que llama no sabe si asigna memoria o apunta a una variable global, que es lo que se puede considerar una variable global. La variable declara el valor de retorno como const struct tagStudent *
c Es más razonable usar parámetros de referencia
void foo(struct tagStudent amp; output)
Devolver estructura No es imposible, pero puede producir una copia de memoria grande. Si la estructura es muy grande, use una copia de memoria grande. Si la estructura es muy grande y usa la estructura para recibirla, se realizará una copia grande, lo que en sí mismo parece innecesario y puede manejarse pasándolo como un parámetro de puntero que apunta a la misma dirección de memoria.