[C] Zastosowanie float i double pod linuxem

Aby poprawnie skompilować kod, kompilator musi mieć informacje o typie zmiennych/funkcji. W plikach nagłówkowych zamieszczasz deklaracje (czyli “wyjaśnienia” dla kompilatora co jest czym). Natomiast w plikach źródłowych z kodem (.c) zamieszcza definicje (“mówiące” kompilatorowi nie tylko co jest czym, ale również jak działa / jakie ma wartości itp.).

U Ciebie powinno to wyglądać:

plik1.h z deklaracjami. Dla funkcji są to po prostu jej nagłówki bez ciała. Warto dodać też coś zwanego strażnikiem nagłówka, aby nie spowodować nieskończonego rekurencyjnego dołączania nagłówków.

#ifndef _NAZWA_PLIKU_H_

#define _NAZWA_PLIKU_H_


#define PI 3.1415 // opcjonalnie, może wystarczy tylko w plik1.c ?


float prostopadloscian(float dlugosc, float szerokosc, float wysokosc);

float walec(float promien_podstawy_walca, float wysokosc_walca);

float stozek(float promien_podstawy_stozka, float tworzaca_stozka);


#endif

Do plik1.c i plik2.c dołączasz plik1.h (ogólnie dołączasz go wszędzie, gdzie chcesz używać wymienionych w nim funkcji).

Ok, wszystko działa tak jak należy. Dzięki wielkie za pomoc nr47 :slight_smile: