DODATEK A PRZEWODNIK JĘZYKA C
stałe przypadków są różne od wartości wyrażenia i nie występuje etykieta domyślna, wówczas nie wykonuje się żadnej z podinstrukcji instrukcji switch.
W pierwszym wydaniu książki dla wyrażenia kontrolnego i stałych przypadków instrukcji switch wymagano typu int.
Instrukcje powtarzania wskazują iteracyjne wykonywanie fragmentu programu.
instrukcja-powtarzania:
while ( wyrażenie ) instrukcja do instrukcja while ( wyrażenie ) ;
for ( wyrażenienlK ; wyraż.enie0]K ; wyrażenie^ ) instrukcja
W instrukcjach while i do wykonanie podinstrukcji powtarza się dopóty, dopóki wartość wyrażenia jest różna od zera; wyrażenie musi mieć typ arytmetyczny lub wskaźnikowy. W instrukcji while wartość wyrażenia (po obliczeniu wszystkich efektów ubocznych) jest sprawdzana przed wykonaniem podinstrukcji; w instrukcji do - za każdym razem po wykonaniu podinstrukcji.
W instrukcji for pierwsze podwyrażenie oblicza się tylko raz; jest to część inicjująca stan pętli. Nie ma ograniczeń dotyczących typu tego wyrażenia. Drugie wyrażenie musi mieć typ arytmetyczny lub wskaźnikowy; jest ono obliczane przed każdym przebiegiem pętli i jeśli stanie się zerem, to wykonanie instrukcji for zostanie przerwane. Trzecie wyrażenie jest obliczane po każdym przebiegu pętli i określa zmianę stanu pętli. Nie ma ograniczeń dotyczących typu tego wyrażenia. Efekty uboczne spowodowane wyrażeniami wykonuje się bezpośrednio po obliczeniu każdego z nich. Jeśli podinstrukcja nie zawiera instrukcji continue, to instrukcja
for ( wyrażenie 1 ; wyrażenie2 ; wyrażenie3 ) instrukcja
jest równoważna z ciągiem instrukcji
wyrażenie1 ; while ( wyrażenie2 ) { instrukcja wyrażenie3 ;
}
Dowolne z tych trzech wyrażeń można pominąć. Pominięcie drugiego wyrażenia jest równoważne z zastąpieniem go stałą różną od zera.
A10 DEKLARACJE ZEWNĘTRZNE
_I |
[ powered by |
I |
| Misiól |
Instrukcje skoku powodują bezwarunkowe przekazanie sterowania do innego miejsca w programie.
instrukcja-skoku:
goto identyfikator ; continue ; break ;
return wy rażenie opc \
W instrukcji goto identyfikator musi być etykietą (p. A9.1) umieszczoną w tej samej funkcji. Sterowanie jest przekazywane do instrukcji opatrzonej tą etykietą.
Instrukcja continue może wystąpić tylko w instrukcjach powtarzania. Powoduje przekazanie sterowania do miejsca wznawiania najciaśniej otaczającej ją pętli. Dokładniej mówiąc, w poniższych instrukcjach:
while (...) { do { for (...) {
••• ••• ••• contin: ; contin:; contin:;
} } while (...); }
instrukcja continue nie występująca w ciaśniej otaczającej pętli jest tym samym, co goto contin.
Instrukcja break może wystąpić tylko w instrukcjach powtarzania i instrukcji switch, i powoduje przerwanie najciaśniej otaczającej ją takiej instrukcji; sterowanie jest przekazywane do instrukcji następnej po przerwanej instrukcji.
Funkcja wraca do miejsca wywołania za pomocą instrukcji return. Jeśli po słowie return występuje wyrażenie, to wartość tego wyrażenia jest przekazywana do miejsca wywołania. Wartość wyrażenia przekształca się (jak w przypisaniu) do typu zwracanego przez funkcję.
Przekroczenie treści funkcji jest równoważne z wykonaniem instrukcji return bez wyrażenia. W obu przypadkach wartość funkcji nie jest określona.
Tekst programu przekazany do kompilatora języka C jest jednostką tłumaczenia; jednostka ta składa się z ciągu deklaracji zewnętrznych, które są albo deklaracjami obiektów, albo definicjami funkcji.
299