Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!
Strony WWWSerwery VPSDomenyHostingDarmowy Hosting CBA.pl

Procedury, funkcje… czyli jak zmniejszyć wielkość kodu.

Posted by Darek on Lipiec 14, 2012

Wraz z zwiększeniem objętości kodu pewne jego części mogą się powtarzać. Rozsądnym było by ich użycie w bardziej zwięzłej formie niżeli jego całe kopiowanie. Użycie tych form języka może poprawić czytelność kodu jak i edytowanie kodu stanie się łatwiejsze.

Procedury vs funkcje

Jedyną ich poważna różnicą jest to, że funkcje zwracają jakiś wynik, a procedury tego nie robią.
Jedynie “pascal” silnie narzuca nam wybór jednego elementu poprzez słowa kluczowe “procedure”/”function”.

Typ argumentów

Stosowanie potencjalnie dużych danych jako argumentu może spowolnić jego działanie. Język C kopiuje swoje argumenty do zmiennych lokalnych. Jedną z cech tego języka jest szybkość, więc jeśli by pozwolił by kopiować duże dane, a programista używał tylko małego fragmentu danych czas zostałby stracony.

Języki, które są bardziej nastawione na “tablice” mają możliwość wysyłania całych struktur.
Przykładowymi językami tego typu są Matlab czy J.

Ilość argumentów

C może obsłużyć większą liczbę argumentów, nawet gdy nie jest sprecyzowany typ.

Język J dzieli “funkcje” na jedno-(monadic) lub dwu-(dyadic) argumentowe.
Jedno argumentowe mają argument po prawej stronie, dwu argumentowe po obu stronach.

W “Go” możemy zwrócić kilka wartości o różnym typie. W podanym niżej przykładzie zwracamy float32 i int

Typ zwracany

Pewne języki ograniczają nam wybór typu zwracanego. Przykładowo w C mamy możliwość zwrócenia tylko wartość o typie prostym(np. Int, char), a nie jest możliwe zwrócenie np. całej tablicy. [Rozwiązaniem jest operowanie na wskaźnikach do takich struktur]

Języki, wspomniane już przeze mnie, czyli Matlab oraz J pozwalają zwrócić inne typy. Musimy się jednak zastanowić czy możemy sobie pozwolić na zwracanie potencjalnie dużych ilości danych jakimi są np. tablice.

Makra i kompilacja warunkowa

Makra w języku C zamieniają podany ciąg znaków na inny jeszcze przed kompilacją. Nie trzeba więc pamiętać, gdzie trzeba wrócić. Przy wywołanie funkcji potrzeba jest zapamiętać, miejsce skoku, skoczyć w inne miejsce, “coś zrobić”, i wrócić. Przykład:

Jak już wspomniałem, kod zamieniany jest przed kompilacją. Możemy zatem np. zlinkować odpowiednie wersje bibliotek[oczywiście niżej wymienione biblioteki nie istnieją] :

Last modified on Kwiecień 18, 2013

Categories: Języki programowania
No Comments »

« | Home | »

Leave a Reply