Deklarując funkcję, możemy przypisać argumentom na końcu listy ich wartości domyślne.
void wypisz(int t[], int dlugosc, char separator=','); void wypisz(int t[], int dlugosc, char separator) { .... // ciało funkcji }
Jeśli definicja i deklaracja są rozdzielone, to wartości argumentów domniemanych mogą się pojawić tylko w deklaracji. W przeciwnym razie zostanie zgłoszony błąd kompilacji.
Jeśli deklaracja jest połączona z definicją, to argumenty domniemane mogą się pojawić również w definicji funkcji.
Efekt użycia argumentów domniemanych jest taki, jak zdefiniowanie przeładowanych funkcji z różną ilością argumentów. W przykładzie powyżej będą to
void wypisz(int t[], int dlugosc, char separator); void wypisz(int t[], int dlugosc);
Definicje dla tych wersji kompilator uzupełni sam, na podstawie jednej podanej definicji i wartości domyślnych argumentów