79
FUNKCJA MAIN()
return zwracana.wartość;
lub dla procedur: return;
Funkcja main()
Do tej pory we wszystkich programach Istniała funkcja main(). Po co tak właściwie ona jest? Otóż jest to funkcja, która zostaje wywołana przez fragment kodu inicjującego pracę programu. Kod ten tworzony jest przez kompilator i nic mamy na mego wpływu. Istotne jest. że każdy program w języku C musi zawierać funkcję main().
Istnieją dwa możliwe prototypy (nagłówki) omawianej funkcji: int main(void) ; lub int main(int arge, char ••argv) Argument, arge jest liczlia nieujeinną określającą, ile ciągów znaków przechowywanych jest w tablicy argv. Wyrażenie argv[argc] ma zawsze wartość NULL. Pierwszym elementem tablicy argv (o ile istnieje1) jest nazwa programu czy komenda, którą program został uruchomiony. Pozostałe przechowują argumenty podane przy uruchamianiu programu.
Zazwyczaj jeśli program uruchomimy poleceniem program argumcntl argument2 to arge będzie równe 3 (2 argumenty + nazwa programu) a argv ł>ędzie zawierać napisy program, argumcntl. argument2 umieszczone w tablicy indeksowanej od 0 do 2.
Weźmy dla przykładu program, który wypisuje to. co otrzymuje w argumentach arge i argv:
#include <stdio.h>
#include <stdlib.h>
int maindnt arge, char »*argv) { while (*argv) { puts(»argv++);
/* Ewentualnie można użyć: int i;
for (i = 0; i<argc; ++i) { puts(argv[i]);
*/
return EXIT_SUCCESS;
Uruchomiony w systemie typu UNIX poleceniem ./test foo bar baz powinien wypisać:
./test
foo
bar
baz
2Czasami można śę spotkać z prototypem int maindnt arge, char ••argv, char • •env);.który jest definiowany w standardzie POSlX. ale wykracza już poza standard C.
3 Inne standardy mogą wymuszać Istnienie tego element u, jednak j«śli chodzi o standard jyzyka C to nic nie stoi na przeszkodzie, aby argument arge iniai wartość zero.