Si la función del lenguaje C tiene demasiados parámetros, ¿cómo se puede optimizar?
No existe un límite claro en el número de parámetros de una función, pero demasiados parámetros (por ejemplo, más de 8) es obviamente un estilo de programación indeseable. La cantidad de parámetros afecta directamente la velocidad de llamada de la función. Cuantos más parámetros, más lenta se llama la función. Por otro lado, cuando la cantidad de parámetros es pequeña, el programa parece conciso y conciso, lo que ayuda a verificar y encontrar errores en el programa. Por lo tanto, normalmente debes reducir la cantidad de parámetros tanto como sea posible. Si una función tiene más de 4 parámetros, debes considerar si la función está escrita correctamente. Si una función tiene que tomar muchos parámetros, puede definir una estructura para contener estos parámetros, lo cual es una muy buena solución. En el siguiente ejemplo, la función print_report() requiere 10 parámetros. Sin embargo, estos parámetros no se enumeran en su descripción. En cambio, estos parámetros se obtienen a través de una estructura RPT_PARMS.
# incluir lt; atdio. hgt; typedef struct (int orientación; char rpt_name[25]; char rpt_path[40]; int destino; char salida_file[25]; int página_inicial; int página_final; char db_name[25]; char db_path[ 40]; int draft_quality; )RPT_PARMS; void main (void); int print_report (RPT_PARMS*); void main (void) { RPT_PARMS rpt_parm; para pasar a la función print_report 0 */ rpt_parm.orientación = ORIENT_LANDSCAPE; rpt_parm.rpt_name = "QSALES.RPT"; rpt_parm.rpt_path = "QSALES. TXT" ; rpt_parm. página_inicial = 1; rpt_pann.página_final = RPT_END; rpt_pann.db_name = "VENTAS. DB"; puntero al parámetro antes de asignarlo una larga lista de 10 parámetros separados * / ret_code = print_report(cu*pt_parm); ) function */ oricnt_printcr(p-gt; orientación); Kt_printer_quality((p-gt; draft_quality == TRUE) ? DRAFT ; NORMAL return } El único inconveniente del ejemplo anterior es que el compilador no puede verificar la referencia; Función print_report() Compruebe si los 10 miembros de la estructura RPT_PARMS cumplen con los requisitos.