Recuerdo haber leído antes sobre la importancia (o la falta de ella) entre incluir un nombre de parámetro en una declaración de función y no incluir uno. Pero no puedo recordar qué fue lo que leí o dónde lo leí.¿cuál es la diferencia entre incluir un nombre de parámetro en una declaración de función y no incluir uno?
por ejemplo,
void do_something(int *); // No parameter name included, only type.
vs ...
void do_something(int * i); // type AND parameter name included.
Entonces, ¿cuál es la diferencia entre estas dos declaraciones? Gracias por leer y quizás responder a esta pregunta posiblemente trivial.
- ACTUALIZACIÓN -
bien, así que lo que había leído era un conjunto de guías de estilo de un viejo profesor de advertencia de minas en contra de incluir un nombre de parámetro en la definición de la función y no se utiliza el parámetro de la función .
void do_something(int * i) { //code that doesn't use i;} //BAD
void do_something(int *) { //code that doesn't use i;} //OK
macros son una especie de mal, lo que con colisiones de nombres, múltiples evaluaciones de argumentos, etc. A veces son prácticamente necesario, pero es una buena idea para evitarlos en general. Entonces, mejor use la plantilla de función 'unusedParam'. Es decir, si no puedes vivir con las advertencias. Cheers, –
De acuerdo, las macros son malvadas. Pero IMO, cualquier código que existe solo para decir "sí, no estoy haciendo nada con este argumento. ¡Cállate, estúpido compilador!" no es mucho mejor – cHao
Por eso existe la sintaxis '(void) argName;'. Eso le dice al compilador que 'argName' es" usado ", aunque se evalúa como no-op. –