Inne działy

 

 

Język C 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 nie mamy na niego 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);
  • int main(int argc, char **argv);

Argument argc jest liczbą nieujemną określającą, ile ciągów znaków przechowywanych jest w tablicy argv. Wyrażenie argv[argc] ma zawsze wartość NULL. Pierwszym elementem tablicyargv (o ile istnieje) 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 argument1 argument2

to argc będzie równe 3 (2 argumenty + nazwa programu) a argv będzie zawierać napisy program, argument1, argument2 umieszczone w tablicy indeksowanej od 0 do 2.
Weźmy dla przykładu program, który wypisuje to, co otrzymuje w argumentach argc i argv:

 

#include <stdio.h>
#include <stdlib.h>
int main(int argc, 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;
}

 

Na razie nie musisz rozumieć powyższych kodów i opisów, gdyż odwołują się do pojęć takich jak tablica oraz wskaźnik, które opisane zostaną w następnych artykułach.


Co ciekawe, funkcja main nie różni się zanadto od innych funkcji i tak jak inne może wołać sama siebie (patrz rekurencja), przykładowo powyższy program można zapisać tak:

 

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) {
if (*argv) {
puts(*argv);
return main(argc-1, argv+1);
} else {
return EXIT_SUCCESS;
}
}

 Ostatnią rzeczą dotyczącą funkcji main jest zwracana przez nią wartość. Już przy omawianiu pierwszego programu wspomniane zostało, że jedynymi wartościami, które znaczą zawsze to samo we wszystkich implementacjach języka są 0, EXIT_SUCCESS i EXIT_FAILURE zdefiniowane w pliku nagłówkowym stdlib.h. Wartość 0 i EXIT_SUCCESS oznaczają poprawne zakończenie programu (co wcale nie oznacza, że makro EXIT_SUCCESS ma wartość
zero), natomiast EXIT_FAILURE zakończenie błędne. Wszystkie inne wartości są zależne od implementacji.

 

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.