int main();
Ésta es una simple declaración. No puede tomar ningún argumento de línea de comando.
int main(int argc, char* argv[]);
Esta declaración se utiliza cuando su programa debe tomar argumentos de línea de comandos. Cuando se ejecuta como tales:
myprogram arg1 arg2 arg3
argc
, o número de argumentos, se establece en 4 (cuatro argumentos), y argv
, o vectores de argumentos, se rellenará con punteros de cadena a "myprogram", "arg1", "arg2" y "arg3". ¡La invocación del programa (myprogram
) está incluida en los argumentos!
Como alternativa, puede utilizar:
int main(int argc, char** argv);
Esto también es válido.
Hay otro parámetro que puede agregar:
int main (int argc, char *argv[], char *envp[])
El parámetro envp
también contiene variables de entorno. Cada entrada tiene este formato:
VARIABLENAME=VariableValue
así:
SHELL=/bin/bash
El entorno de la lista de variables es terminada en nulo.
Si su programa va a ignorar los argumentos de la línea de comandos, entonces lo que escriba está bien. Si su programa necesita procesar argumentos de línea de comando, entonces el IDE lo está haciendo bien. –
Una pista para los piratas informáticos: intente declarar 'int main (int argc, char * argv [], char * envp [])' e imprima el último argumento. ';)' – ulidtko
@ulidtko no es bueno que estés enseñando a los novatos a introducir vulnerabilidad en sus programas;) –