38959

38959



80


ROZDZIAŁ U. FUNKCJE

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 dalszej części podręcznika.

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

#include <stdio.h>

#include <stdlib.h>

int main(int arge, char **argv) { if (*argv) { puts(»argv);

return main(argc-l, argv+l);

} 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_SUCCKSS i E XI T.FA.IL U RE* zdefiniowane w pliku nagłówkowym stdlib.h. Wartość 0 i EXIT JSUCCESS 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.

Dalsze informacje

Poniżej przekażemy ci parę bardziej zaawansowanych informacji o funkcjach w C. jeśli nie masz ochoty wgłębiać się w szczegóły, możesz spokojnie pominąć tę część i wrócić tu później.

Jak zwrócić kilka wartości?

Jeśli chcesz zwrócić z funkcji kilka wartości, musisz zrobić to w trochę inny sposób. Generalnie możliwe są dwa podejścia: jedno to “upakowanie*’ zwracanych wartości można stworzyć tak zwaną strukturę, która będzie prze-chowy wala kilka zmiennych (jest to opisane w rozdziale Typy złożone). Prostszym sposobem jest zwracanie jednej z wartości w normalny sposób a pozostałych jako parametrów. Za chwilę dowiesz się. jak to zrobić: jeśli chcesz zobaczyć przykład, możesz przyjrzeć się funkcji scanf() z biblioteki standardowej.

''Jeżeli ktoś lubi ekstrawagancki kod ciało funkcji main można zapisać jako return »argv ? puta(*argv). aainfargc-l, argv*l) : EJtlT.SUCCESS;, ak- nie radzimy stosować tak skomplikowanych i. bądź co l>ądź, mało czytelnych konstrukcji.

5 U w aga! Makra EXIT-SUCCESS i EXIT.FAIIX’RE te służą tylko i wyłącznic jako wartości do zwracania przez funkcję main(). Nigdzie indziej nic mają one zastopowania.



Wyszukiwarka

Podobne podstrony:
DIGDRUK00128047 41 Na to nie ma rady i wyczerpawszy wszystkie środki — należy uciec się do żar
Scan3 (6) Sklejamy ze sobą ale na razie nie łączymy z resztą kadłuba. Łopaty śmigła wykonujemy
page0018 s Na razie, nie potrzebuję rozwijać tu i zbijać błędu panteistów, bo każdy czuje aż nadto d
Jerzy Pilch1 21 czerwca 2012 Duchota jak kamienna ściana. Będzie większa, ale na razie nie wiadomo.
5. Staramy się na siebie nie krzyczeć i rozumiemy innych (autor ilustracji: Hubert Ronek) Autorzy
Krok 13.1 dochodzimy do znacznika <body>...</body> ... i na razie nie umieszczamy w nim
UCZNIOWIE WSKAŻĄ, KTÓRA SZKOŁA Sl{ NIE OSTANIE Powiat: Propozycja, by na razie nie likwidować żadnej
68 (224) czenie zupy wieczornej. Innych warzyw na razie nie widać. Jedynie właściciele działek puchn
Leczenie maściami przy bólach pleców 137 nerwowych. Jak na razie, nie udokumentowano jednak naukowo
58263 Osobisty Trener 3 SFITNESS ■ ( f Jwf aPrzepis na biceps Nie musisz trenować w profesjonalnej s
Co dostałeś na semes 7 NIE MUSISZ NUDZIĆ SIĘ W ROBOCIE. WEJDŹ NA bebZOl.COlTl

więcej podobnych podstron