Ne abbiamo "bisogno", perché è richiesto da vari standard.
Siamo liberi di ignorare completamente il valore, ma poiché è il primo parametro di main
, dobbiamo averlo nell'elenco dei parametri. In C ++ (e probabilmente dialetti C non standard), puoi semplicemente omettere il nome del parametro, come questo frammento C ++ (facile da convertire in 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;
}
Nello standard C, con le impostazioni comuni degli avvisi, il parametro inutilizzato genera un avviso, che può essere corretto da un'istruzione come la (void)argc;
quale fa sì che il nome venga utilizzato senza generare alcun codice.
argc
è bello averlo, perché altrimenti molti programmi avrebbero bisogno di controllare i parametri per ottenere il conteggio. Inoltre, in molti linguaggi di programmazione con array che hanno lunghezza, non c'è alcun argc
parametro, c'è solo un array con gli elementi.
int argc(char *argv[])
fanno esattamente questo :-))