Pomiędzy kodem a programem wykonywalnym
- W pierwszym przejściu kompilator sprawdza prawidłowość typów argumentów w wywołaniach funkcji
- C i C++ nie wspiera kontroli typów w czasie wykonania
Wsparcie kompilacji kodu fragmentami
- Duże programy wygodnie jest dzielić na fragmenty, umieszczone w różnych plikach, którymi łatwiej jest zarządzać
- Najmniejszą niepodzielną częścią programu jest funkcja – zazwyczaj otrzymuje jakieś argumenty na których coś robi i zwraca jakąś wartość
- Żeby kompilator mógł sobie poradzić z kompilowaniem programu złożonego z wielu plików musimy powiedzieć mu jakie funkcje będą używane i jak będą wyglądać – musimy je zadeklarować.
- Deklaracja – wprowadza do użytku nazwę zmiennej lub funkcji, mówi kompilatorowi jakiego typu i w jakiej kolejności argumenty przyjmuje funkcja i jakiego typu wartość zwraca.
- Definicja – mówi kompilatorowi aby fizycznie zrobił tzn. przydzielił pamięć na daną zmienną, lub w przypadku funkcji wygenerował kod i zarezerwował na niego miejsce w pamięci.
- Deklaracje mogą się powtarzać w różnych miejscach ale definicja musi być dokładnie jedna – pilnuje tego linker.
Składnia deklaracji funkcji
lub równoważnie int f(int ile, float masa);
- funkcja bez argumentów np.: int g() w C i C++ jest interpretowana inaczej
- w C oznacza dowolną liczbę argumentów
- w C++ funkcja bez argumentów