Problem masz w tym, że kompilator (a raczej linker) dwa razy "przetwarza" funkcję rozjasnianiesciemnianie(). Nie dodaje się plików z rozszerzeniem .c za pomocą #include. Kompilator jedzie po kolei z wszystkimi plikami o rozszerzeniu .c, a więc rozjasnianiesciemnianie.c, gdzie znajduje w.w. funkcję, a następnie main.c, który również includuje plik z tą funkcją. Dlatego widzi ją dwa razy i wyrzuca błąd. Rozwiązaniem jest wyciągnięcie deklaracji tej funkcji do pliku nagłówkowego, np rozjasnianiesciemnianie.h:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A następnie w obu plikach .c wklejamy powyższy plik za pomocą #include
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dodatkowa moja sugestia jest taka, że wyrzucanie zawartości całego main() do osobnej funkcji, razem z główną pętlą while(), niejako mija się z celem. Lepiej byłoby rozbić to na dwie funkcje, np inicjalizacja_sciemniacza() i petla_sciemniacza().