To pytanie może jest teoretyczny, ale odpowiedź na nie jest dla mnie bardzo ważna.
Mam jeden problem z którym w żaden sposób nie jestem w stanie sobie poradzić. Dotyczy on połączenia ze sobą niezależnych elementów programu na zasadzie takiej, że zadeklarowane w nim zmienne i funkcje giną w momencie przekierowania do innego pliku tzw. wywołania innej funkcji która jest zadeklarowana w zupełnie innym pliku i jest zupełnie niezależna, bo już odpowiada za inną funkcjonalność programu.
plik_1 wywołuje plik_2
plik_2 wywołuje plik_1 (w taki sposób, aby nie widać było że funkcja będąca w pliku_1 została już wywołana )
Jak to zrobić ? Ja próbowałem na różne sposoby czyszczenie pamięci system("clear"); ale nic [...] Aby ten problem przedstawić jak najjaśniej to program wygląda schematycznie następująco:
Katalogi i pliki:
______style /* Katalog przechowujący elementy odpowiadające za grafikę tego programu */
| funkcjonalność_1.c /* Deklaruje tutaj zmienne statyczne co to mi daje? */
| funkcjonalność_2.c
| funkcjonalność_3.c [...]
|main.c /* Ten plik tylko uruchamia cały ten program */
|nagłówek.h /* Jest to plik przechowujący deklaracje wszystkich funkcji znajdujących się w tym konkretnym katalogu */
/*funkcjonalność_1.c*/
void procedura_1(){
/*jakaś instrukcja, która po wprowadzeniu jakiś danych przez użytkownika odpala mi funkconalność_2.c*/
}
/*funkcjonalność_2.c*/
void procedura_2(){
/*jakaś instrukcja, która po wprowadzeniu jakiś danych przez użytkownika odpala mi funkconalność_1.c tak jakby 1 nigdy się nie wykonało*/
}
Jak pisać tego typu projekty w zwykłym języku C z uwagi na to że nie jest to język obiektowy. Jak deklarować zmienne funkcję zapewniać komunikację między konkretnymi jego funkcjami zmiennymi procedurami funkcjonalnościami? Jak kompilować ten program gdzie całe katalogi tworzą mi jeden oddzielny element programu, aby później móc to scalić w jeden plik wykonywalny?