Program wieloplikowy

0

Mam 3 pliki main.c, funkcje.c, funkcje.h.
W funkcje.h zawarłem prototypy, a w funkcje.c implementacje samych funkcji.
Do maina dodałem plik funkcje.h includem. I tu moje pytanie dlaczego program po usunieciu pliku albo kodu prototypów funkcji z pliku dalej ją wykonuje, pytam bo zawsze musiałem deklarować funkcję, a z zewnętrznego pliku działa bez deklaracji. Dodam krótki kod dla czytelności.

#include <stdio.h>
#include "test_main.h"

int liczba = 10;

int main(void){
    printf("%d", funkcja(liczba));
    return 0;
}
 
#include "test_main.h"

int funkcja(int liczba){
liczba += 5;
return liczba;
}
#ifndef TEST_MAIN_H_INCLUDED
#define TEST_MAIN_H_INCLUDED

int funkcja(int);

#endif // TEST_MAIN_H_INCLUDED
0

Pokaż w którym przypadku wg ciebie działa nieodpowiednio, bo z opisu nie zrozumiałem.
Może chodzi ci o to że pozostaje ci skompilowany funkcja.obj więc niektóre środowiska nawet nie wspominają o obecnym braku funkcja.c

0

main.c

#include <stdio.h>

int liczba = 10;

int main(void){
    printf("%d", funkcja(liczba));
    return 0;
}
 

main_test.c

int funkcja(int liczba){
liczba += 5;
return liczba;
}

Te 2 pliki są w 1 projekcie, ale nie mam prototypu funkcji nigdzie i main widzi funkcje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1