Lo "necesitamos", porque es requerido por varios estándares.
Somos libres de ignorar el valor por completo, pero como es el primer parámetro de main
, debemos tenerlo en la lista de parámetros. En C ++ (y probablemente en dialectos de C no estándar), puede simplemente omitir el nombre del parámetro, como este fragmento de C ++ (fácil de convertir a C):
#include <stdio.h> // C-compatible include, guarantees puts in global namespace
// program will print contents of argv, one item per line, starting from argv[0]
int main(int /*argc*/, char *argv[]) { // uncomment argc for C
//(void)argc; // uncomment statement for C
for (int i=0; argv[i]; ++i) {
puts(argv[i]);
}
return 0;
}
En el estándar C, con configuraciones de advertencias comunes, el parámetro no utilizado genera una advertencia, que puede corregirse mediante una declaración como la (void)argc;
que hace que el nombre se use sin generar ningún código.
argc
Es bueno tenerlo, porque de lo contrario, muchos programas necesitarían recorrer los parámetros para obtener el recuento. Además, en muchos lenguajes de programación con matrices que tienen longitud, no hay ningún argc
parámetro, solo hay una matriz con los elementos.
int argc(char *argv[])
haciendo exactamente esto :-))