W nagłówku/prototypie funkcji w C/C++ występują trzy kluczowe elementy: typ zwracany, nazwa funkcji oraz lista parametrów w nawiasach.
Deklaracja int funkcja(void); oznacza, że:
- int to typ zwracany – funkcja po wywołaniu zwraca wartość całkowitą (np. poprzez return).
- funkcja to identyfikator (nazwa) funkcji.
- (void) w miejscu listy parametrów jest w C/C++ specjalnym zapisem, który jawnie wskazuje, że parametrów nie ma.
Dlatego poprawne rozumienie jest takie: funkcję wywołuje się bez argumentów, np. int x = funkcja();, a kompilator może wykryć błąd, jeśli ktoś spróbuje przekazać argumenty.
Odpowiedź mówiąca, że funkcja "nie zwraca żadnej wartości" jest błędna, bo to wymagałoby typu zwrotu void, a tutaj typem zwracanym jest int.
Odpowiedzi sugerujące "parametr o nazwie void" są również błędne. void w tym miejscu nie jest nazwą parametru, tylko słowem kluczowym opisującym brak parametrów (a nie ich istnienie).
Warto też pamiętać o typowej pułapce: w języku C zapis funkcja() historycznie może oznaczać nieokreśloną listę parametrów, natomiast funkcja(void) jednoznacznie deklaruje brak parametrów. To właśnie dlatego forma z void bywa uznawana za bardziej precyzyjną.