La funció més important de C és la funció main(). Es defineix principalment amb un tipus de retorn de int i sense paràmetres.
int main() { ... }> També podem donar arguments de línia d'ordres en C. Els arguments de línia d'ordres són els valors que es donen després del nom del programa a l'intèrpret d'ordres de la línia d'ordres dels sistemes operatius. Els arguments de la línia d'ordres els gestiona la funció main() d'un programa C.
Per passar arguments de línia d'ordres, normalment definim main() amb dos arguments: el primer argument és the nombre d'arguments de línia d'ordres i el segon és a llista d'arguments de la línia d'ordres.
quants zeros hi ha 1.000 milions
Sintaxi
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }> Aquí,
- argc (ARGument Count) és una variable entera que emmagatzema el nombre d'arguments de línia d'ordres passats per l'usuari, inclòs el nom del programa. Així, si passem un valor a un programa, el valor de argc seria 2 (un per a l'argument i un per al nom del programa)
- El valor de argc no ha de ser negatiu. argv (ARGument Vector) és una matriu de punters de caràcters que enumera tots els arguments.
- Si argc és més gran que zero, els elements de la matriu d'argv[0] a argv[argc-1] contindran punters a cadenes.
- argv[0] és el nom del programa, després fins a argv[argc-1] tots els elements són arguments de línia d'ordres.
Per a una millor comprensió, executeu aquest codi a la vostra màquina Linux.
Exemple
L'exemple següent il·lustra la impressió d'arguments de línia d'ordres.
C
// C program named mainreturn.c to demonstrate the working> // of command line arguement> #include> // defining main with arguments> int> main(>int> argc,>char>* argv[])> {> >printf>(>'You have entered %d arguments:
'>, argc);> >for> (>int> i = 0; i printf('%s
', argv[i]); } return 0; }> |
>
>
Sortida
You have entered 4 arguments: ./main geeks for geeks>
per a l'entrada de terminal
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Nota: Els estàndards C també permeten altres formats que depenen de la plataforma; per exemple, Unix (encara que no POSIX.1) i Microsoft Visual C++ tenen un tercer argument que proporciona l'entorn del programa, d'altra manera accessible mitjançant getenv a stdlib.h. Consulteu el programa C per imprimir variables d'entorn per obtenir més informació.
Propietats dels arguments de la línia d'ordres a C
- Es passen a la funció main().
- Són paràmetres/arguments subministrats al programa quan s'invoca.
- S'utilitzen per controlar programes des de l'exterior en lloc de codificar aquests valors dins del codi.
- argv[argc] és un punter NULL.
- argv[0] conté el nom del programa.
- argv[1] apunta al primer argument de la línia d'ordres i argv[argc-1] apunta al darrer argument.
Nota: Passeu tots els arguments de la línia d'ordres separats per un espai, però si l'argument en si té un espai, podeu passar aquests arguments posant-los entre cometes dobles o cometes simples .
Exemple
El programa següent mostra el funcionament dels arguments de la línia d'ordres.
C
// C program to illustrate> // command line arguments> #include> int> main(>int> argc,>char>* argv[])> {> >printf>(>'Program name is: %s'>, argv[0]);> >if> (argc == 1)> >printf>(>'
No Extra Command Line Argument Passed '> >'Other Than Program Name'>);> >if> (argc>= 2) {> >printf>(>'
Number Of Arguments Passed: %d'>, argc);> >printf>(>'
----Following Are The Command Line '> >'Arguments Passed----'>);> >for> (>int> i = 0; i printf('
argv[%d]: %s', i, argv[i]); } return 0; }> |
canyella vs mate
>
>
Sortida en diferents escenaris:
1. Sense argumentació: Quan el codi anterior es compila i s'executa sense passar cap argument, produeix la següent sortida.
Entrada terminal
$ ./a.out>
Sortida
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tres arguments: Quan el codi anterior es compila i s'executa amb tres arguments, produeix la següent sortida.
Entrada terminal
$ ./a.out First Second Third>
Sortida
Program Name Is: ./a.out Number Of Arguments Passed: 4 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First argv[2]: Second argv[3]: Third>
3. Argument únic: Quan el codi anterior es compila i s'executa amb un sol argument separat per espai però entre cometes dobles, produeix la següent sortida.
Entrada terminal
$ ./a.out 'First Second Third'>
Sortida
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>
4. Un sol argument entre cometes separats per espai: Quan el codi anterior es compila i s'executa amb un sol argument separat per espai però entre cometes simples, produeix la següent sortida.
Entrada terminal
$ ./a.out 'First Second Third'>
Sortida
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>