Den vigtigste funktion af C er main()-funktionen. Det er for det meste defineret med en returtype af int og uden parametre.
int main() { ... }> Vi kan også give kommandolinjeargumenter i C. Kommandolinjeargumenter er de værdier, der er angivet efter navnet på programmet i kommandolinjeskallen i Operativsystemer. Kommandolinjeargumenter håndteres af hovedfunktionen () i et C-program.
For at sende kommandolinjeargumenter definerer vi typisk main() med to argumenter: det første argument er antal kommandolinjeargumenter og den anden er en liste over kommandolinjeargumenter.
dynamisk programmering
Syntaks
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }> Her,
- argc (ARGument Count) er en heltalsvariabel, der gemmer antallet af kommandolinjeargumenter, der sendes af brugeren, inklusive navnet på programmet. Så hvis vi sender en værdi til et program, vil værdien af argc være 2 (en for argument og en for programnavn)
- Værdien af argc skal være ikke-negativ. argv (ARGument Vector) er en række tegnpointere, der viser alle argumenterne.
- Hvis argc er større end nul, vil array-elementerne fra argv[0] til argv[argc-1] indeholde pointere til strenge.
- argv[0] er navnet på programmet, derefter indtil argv[argc-1] er hvert element kommandolinjeargumenter.
For bedre forståelse skal du køre denne kode på din Linux-maskine.
Eksempel
Nedenstående eksempel illustrerer udskrivningen af kommandolinjeargumenter.
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; }> |
>
>
Produktion
You have entered 4 arguments: ./main geeks for geeks>
til terminalindgang
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Bemærk: Andre platformsafhængige formater er også tilladt af C-standarderne; for eksempel har Unix (dog ikke POSIX.1) og Microsoft Visual C++ et tredje argument, der giver programmets miljø, ellers tilgængeligt via getenv i stdlib.h. Se C-programmet for at udskrive miljøvariabler for detaljer.
Egenskaber for kommandolinjeargumenter i C
- De sendes til funktionen main().
- De er parametre/argumenter, der leveres til programmet, når det påkaldes.
- De bruges til at styre programmer udefra i stedet for at hårdkode disse værdier inde i koden.
- argv[argc] er en NULL-pointer.
- argv[0] har navnet på programmet.
- argv[1] peger på det første kommandolinjeargument og argv[argc-1] peger på det sidste argument.
Bemærk: Du sender alle kommandolinjeargumenterne adskilt af et mellemrum, men hvis selve argumentet har et mellemrum, så kan du videregive sådanne argumenter ved at sætte dem inden for dobbelte anførselstegn eller enkelte anførselstegn.
Eksempel
Nedenstående program viser, hvordan kommandolinjeargumenter fungerer.
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; }> |
>
>
Output i forskellige scenarier:
1. Uden argument: Når ovenstående kode kompileres og udføres uden at sende noget argument, producerer den følgende output.
Terminalindgang
indsæt vandmærke i word
$ ./a.out>
Produktion
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tre argumenter: Når ovenstående kode er kompileret og eksekveret med tre argumenter, producerer den følgende output.
Terminalindgang
$ ./a.out First Second Third>
Produktion
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. Enkelt argument: Når ovenstående kode kompileres og udføres med et enkelt argument adskilt af mellemrum, men inden for dobbelte anførselstegn, producerer den følgende output.
Terminalindgang
$ ./a.out 'First Second Third'>
Produktion
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. Et enkelt argument i anførselstegn adskilt af mellemrum: Når ovenstående kode kompileres og udføres med et enkelt argument adskilt af mellemrum, men inden for enkelte anførselstegn, producerer den følgende output.
Terminalindgang
$ ./a.out 'First Second Third'>
Produktion
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>