Źródło: Arkusze CKE
Przedstawiony na filmie kod napisany w języku C++ nie kompiluje się. Co należy zmienić w tym kodzie, aby proces kompilacji wykonał się bez błędów?
Warianty odpowiedzi
-
A
zadeklarować zmienną sprawdz przed jej wykorzystaniem w linii 11
-
B
poprawnie zapisać warunek w instrukcji if w linii 11, np. sprawdz(x)==true
-
C
naprawić błąd w funkcji sprawdz, który polega na braku nawiasów {} w pętli for
-
D
dodać deklarację funkcji sprawdz przed funkcją main
Wyjaśnienie
Kompilator C++ czyta plik źródłowy po kolei, od góry do dołu. Jeśli napotka w funkcji main wywołanie jakiejś funkcji, musi wcześniej poznać jej nagłówek, aby wiedzieć, jakich argumentów się spodziewać i co dana funkcja zwraca.
Jeśli pełna definicja funkcji znajduje się na samym dole pliku (pod funkcją main), kompilator w momencie analizowania main jeszcze o niej nic nie wie i zgłosi błąd brakującej deklaracji.
Rozwiązaniem jest umieszczenie prototypu (deklaracji) funkcji przed funkcją main. W ten sposób dajemy kompilatorowi jasną informację, że taka funkcja istnieje i zostanie zdefiniowana w dalszej części kodu.