ANSI C 4

ANSI C 4



1 ELEMENTARZ


I

Właściwie dobrane nazwy stanowią jednak dobry komentarz, tak że będziemy z nich często korzystać.

A teraz krótka nota historyczna: Największą zmianą różniącą ANSI C od poprzednich wersji języka jest sposób deklarowania i definiowania funkcji. Zgodnie z oryginalną definicją języka C funkcja power wyglądałaby tak:

/* power: podnieś base do potęgi n; n >= 0 */

/*    (wersja w starym stylu) */

power(base, n) int base, n;

{

int i, p;

P = 1;

for (i = 1; i <= n; ++i)    |

p = p * base; return p;

}

Nazwy parametrów występują w nawiasach okrągłych, a ich typy są zadeklarowane przed otwierającym nawiasem klamrowym. Przyjmuje się, że parametry bez deklaracji są typu int. (Treść funkcji jest taka sama jak poprzednio.)    !

Deklaracja funkcji power na początku programu wyglądałaby tak:

int powerO;

Umieszczanie listy parametrów w deklaracji funkcji było zabronione, toteż kompilator - choćby chciał - nie mógł sprawdzić, czy funkcję power wywołano poprawnie W rzeczywistości całą deklarację można było w ogóle pominąć, gdyż przyjęto by do myślnie, że power jest funkcją zwracającą wartość typu int.    i

Nowa składnia prototypu funkcji ułatwia kompilatorowi wykrywanie błędów w licz* bie argumentów lub w ich typach. Stary styl deklaracji i definicji nadal obowiązuje w opisie ANSI C, przynajmniej w okresie przejściowym; my jednak mocno polecam) używanie nowej postaci, jeśli tylko Twój kompilator potrafi ją obsłużyć.

Ćwiczenie 1.15. Napisz nową wersję programu przekształcania temperatur z p. 1.2, w której przekształceń tych dokonuje funkcja.

Argumenty - przekazywanie przez wartość


Jedna z właściwości funkcji języka C może nie być bliska programistom posługującym się pewnymi innymi językami programowania, zwłaszcza zaś Fortranem. W języku C wszystkie argumenty funkcji są przekazywane „przez wartość”. Oznacza to, że wywołana funkcja zamiast oryginałów otrzymuje wartości swoich argumentów w zmiennych tymczasowych. Mechanizm ten wprowadza kilka innych właściwości niż występujące przy wywołaniu „przez referencję” w językach takich jak Fortran lub przy parametrach var w Pascalu. Tam wywołany podprogram ma dostęp do oryginału argumentu, a nie do jego kopii.

Podstawowa różnica polega na tym, że w języku C wywołana funkcja nie może bezpośrednio zmienić wartości zmiennej w funkcji wywołującej; może jedynie zmienić swoją prywatną, tymczasową kopię.

Przekazywanie argumentów przez wartość nie jest jednak wadą, lecz zaletą. Zwykle prowadzi do bardziej zwartych programów z kilkoma swobodnymi zmiennymi, gdyż w wywoływanej funkcji parametry mogą być traktowane jak zwyczajnie inicjowane zmienne lokalne. W następnej wersji funkcji power skorzystano właśnie z tej właściwości.

/* power: podnieś base do potęgi n; n >= 0; wersja 2 */ int power(int base, int n)

{

int p;

for (p = 1; n > 0; —n) p = p * base; return p;

Parametrem n posłużono się jako zmienną tymczasową, zmniejszaną stopniowo do zera (pętla for, która biegnie wstecz). Zmienna i nie jest już dłużej potrzebna. Cokolwiek zrobiono ze zmienną n wewnątrz funkcji power, nie ma to żadnego wpływu na wartość argumentu, z którym funkcja ta została wywołana.

Można spowodować, jeśli to konieczne, aby funkcja zmieniała wartość zmiennej w funkcji wywołującej. W tym celu funkcja wywołująca musi przekazać adres zmiennej (technicznie wskaźnik do zmiennej), a funkcja wywoływana musi zadeklarować

51


Wyszukiwarka

Podobne podstrony:
Ogłoszenie o pracę zasada AIDA A - attention - uwaga - właściwe określenie nazwy stanowiska I - Inte
ANSI C 4 1 ELEMENTARZ Większość pracy programu jest realizowana przez pętlę while. Obliczenie temp
skanuj0009 została zaakceptowana w Stanach Zjednoczonych. Przez jakiś czas stanowiła ona wielką modę
img065 (2) 2. Zadani a Dwanaście Jednakowych drutów poleczono tak, że tworzą krawędzie sześcianu /ry
CCF20090105014 1L Ja jednak wierzę w laboratoria i w to, że wre w nich dzień i noc praca: nie
odpowiednikiem takiej dyskusji może być np. recenzja książki, jednak nierzadko bywa tak, że jej auto
skanuj0009 została zaakceptowana w Stanach Zjednoczonych. Przez jakiś czas stanowilii ona wielką mod
50338 tomI (260) 262 Podstawy fizjoterapii Ćwiczenia fizyczne - właściwie dobrane - stanowią podstaw

więcej podobnych podstron