Programowanie/Procedury i funkcje/Procedury i funkcje

W języku Pascal podprogramy są nazywane procedurami oraz funkcjami. Procedura komunikuje się poprzez parametry formalne, natomiast funkcja oprócz parametrów formalnych zwraca także specjalną wartością zwracaną.

W języku C występują wyłącznie funkcje. Procedura jest specjalną funkcją, zwracającą typ pusty void.

int v1
int v2

//wywołanie funkcji
zamien(         v1,         v2);
/*              ^            ^
                |            |     podczas uruchomienia funkcji
                |            |     parametry formalne param1 i param2 są  
                v            v     zastępowane wartościami v1 i v2
    zamien(int param1, int param2)
    {
        int rob;
        //algorytm zamiany wartości
        rob = param1;
        param1 = param2;
        param2 = rob;
  
        // wyjdź z funkcji
        return;

    }//funkcja zamien
*/

// funkcja została zakończona, w tym przypadku wartości parametrów
// zostały zamienione wewnątrz funkcji ale na zewnątrz zmienne v1 i v1
// nie zostały zamienione

/*
=== UWAGA ===

Zauważmy, że zmiana wartości parametrów funkcji na trakcie działania programu nie
powoduje zmian wartości parametrów aktualnych (tutaj zmiennych v1, v2)

W języku Fortran dane są przekazywane przez zmienną i coś takiego by działało od razu.
W Języku C zmiana wartości parametrów aktualnych wymaga użycia wskaźników.

Wystarczy za parametr funkcji podać wskaźniki do żądanych zmiennych. Podczas działania
funkcji sama wartość wskaźnika się nie zmienia (bo wskaźnik wskazuje cały czas na tę samą zmienną) natomiast wartość wskazywana przez ów wskaźnik może być swobodnie modyfikowana (o ile wskaźnik nie wskazuje na stałą).  
*/