ANSI C 0

ANSI C 0



4 FUNKCJE I STRUKTURA PROGRAMU

/* getline: wczytaj wiersz do tablicy s; podaj jego długość */ int getline(char s[], int lim)

{

int c, i; i = 0;

while (—lim > 0 && (c=getchar()) != EOF && c != ’\n’) s[i++] = c; if (c == ’\n’) s[i++] = c; slil = ’\0’; return i;

}

I* strindex: określ pozycję tekstu t w s lub -1, gdy brak */ int strindex(char s[ ], char t[ ])

{

int i, j, k;

for (i = 0; s[i] != ’\0’; i++) {

for (j=i, k=0; t[k] != ’\0' && s[j] == t[k]; j++, k++)

if (k > 0 && tik] == ’\0’) return i;

}

return -1;

}

Każda definicja funkcji ma następujący format:

typ-powrotu nazwa-funkcji (deklaracje parametrów)

{

deklaracje i instrukcje

}

Różne części tej definicji można pominąć; najmniejszą funkcją jest funkcja dummy (atrapa):

dummy() {}

która nic nie robi i nie zwraca żadnej wartości. Takie nic nie robiące fukcje, jak t3' przydają się czasami do zarezerwowania miejsca podczas stopniowego rozwoju

4.1 WPROWADZENIE______I powered by

I Mi siol

gramu. Jeśli w definicji pominięto typ-powrotu, to przyjmuje się, że fuffissjew wartość typu int.

Program jest właściwie zbiorem definicji zmiennych i funkcji. Komunikacja między funkcjami odbywa się za pośrednictwem argumentów wywołania funkcji i wartości zwracanych przez funkcje, a także za pośrednictwem zmiennych zewnętrznych.

W pliku źródłowym funkcje mogą występować w dowolnej kolejności, a program można podzielić między kilka plików źródłowych pod warunkiem, że żadna z funkcji nie zostanie podzielona.

Instrukcja return jest narzędziem, dzięki któremu wywołana funkcja przekazuje do miejsca wywołania wartość pewnego wyrażenia. Po słowie return może wystąpić dowolne wyrażenie:

return wyrażenie]

Jeśli zajdzie taka potrzeba, wyrażenie zostanie przekształcone do typu wartości zwracanej przez funkcję. Wyrażenie jest często otaczane nawiasami okrągłymi, ale nie jest to konieczne.

Funkcja wywołująca może zignorować zwracaną wartość. Poza tym instrukcja return nie musi zawierać wyrażenia; w takim przypadku do miejsca wywołania nie przekazuje się żadnej wartości. Sterowanie wraca bez wartości także wtedy, kiedy wykonywanie funkcji zakończy się po osiągnięciu nawiasu klamrowego zamykającego funkcję. Nie jest błędem, choć prawdopodobnie oznacza kłopoty, jeśli funkcja zwraca wartość z jednego miejsca, a z innego nie*. W każdym razie „wartością” funkcji, której nie udało się zwrócić poprawnej wartości, na pewno są śmiecie.

Program wyszukiwania wzorca za pomocą funkcji main zwraca stan osiągnięty po zakończeniu działania, czyli liczbę wierszy pasujących do wzorca. Z tej wartości może skorzystać otoczenie, w którym uruchomiono program.

Techniki tłumaczenia i ładowania programów w języku C, podzielonych między kilka plików źródłowych, zmieniają się zależnie od systemu. Na przykład w systemie Unix zadanie to jest realizowane przez polecenie cc, wspomniane w rozdz. 1. Przypuśćmy, że każda z naszych trzech funkcji jest zapamiętana w osobnym pliku i pliki te nazywają się: main.c, getline.c oraz strindex.c. Wówczas polecenie

cc main.c getline.c strindex.c

przetłumaczy je, umieści ich wynikowe kody pośrednie (ang. object codę) w plikach pośrednich main.o, getline.o i strindex.o, a następnie załaduje wszystkie razem do

Przyzwoite kompilatory wychwytują takie przypadki. - Przyp. tłum.


Wyszukiwarka

Podobne podstrony:
ANSI C 0 4 FUNKCJE I STRUKTURA PROGRAMU-------------- zamiast int Iow, high, mid; Iow = 0; high =
ANSI C 3 4 FUNKCJE I STRUKTURA PROGRAMU zostanie rozwinięte w wiersz printf(Mx/yM ” = %g

ANSI C 9 4 FUNKCJE I STRUKTURA PROGRAMU 4 FUNKCJE I STRUKTURA PROGRAMUWprowadzenie Na początku opr
ANSI C 1 4 FUNKCJE I STRUKTURA PROGRAMU wykonywalnego pliku zwanego a.out. Jeśli wystąpi błąd, np.
ANSI C 2 4 FUNKCJE I STRUKTURA PROGRAMU Deklaracja double sum, atof(char[ ]); mówi, że zmienna sum
ANSI C 3 4 FUNKCJE I STRUKTURA PROGRAMU rozwagą, ponieważ mogą niekorzystnie wpływać na strukturę
ANSI C 4 4 FUNKCJE I STRUKTURA PROGRAMU Funkcja main jest pętlą zawierającą ogromną instrukcję swi
ANSI C 5 4 FUNKCJE I STRUKTURA PROGRAMU_________^ Zmienna jest zewnętrzna, jeśli zdefiniowano ją n
ANSI C 6 4 FUNKCJE I STRUKTURA PROGRAMU_________._—---- W bibliotece standardowej występuje funkcj
ANSI C 7 4 FUNKCJE I STRUKTURA PROGRAMU _________ Rozróżnienie deklaracji zmiennej zewnętrznej i j
ANSI C 8 4 FUNKCJE I STRUKTURA PROGRAMU Jest jeszcze jedna rzecz, o którą należy się zatroszczyć -
ANSI C 9 4 FUNKCJE I STRUKTURA PROGRAMU gdyż słowo register w deklaracjach nadliczbowych czy też n
ANSI C 1 4 FUNKCJE I STRUKTURA PROGRAMU I* qsort: uporządkuj v[left]...v[right] rosnąco */ void qs
ANSI C 2 4 FUNKCJE I STRUKTURA PROGRAMU Jeśli wstawiany plik zostanie zmieniony, to naturalnie wsz
DSC00382 (15) Program umoilmia: // 1. Wczytanie aktualnego rozmiaru tablicy Uczb calk // 2. Wczytani
Scan Pic0323 154 15. Funkcja e~x czyli «xp(-x) Objaśnienia do tablicy 15 Przy obliczaniu funkcji e~x
ANSI C 0 5 WSKAŹNIKI I TABLICE -------- ten program tak, aby najlepiej wykorzystywał dostępną mu p

więcej podobnych podstron