Witam,
Zwracam się z pytaniem gdzie należy zadeklarować i zdefiniować funkcję w C aby była widoczna tylko w jednym plików źródłowym.
Mam takie pliki:
plik1.c
#include "plik1.h"
void funkcja1()
{
funkcja2();
}
static void funkcja2()
{
}
plik2.c
#include "plik1.h"
int main()
{
funkcja1();
}
plik1.h
extern void funkcja1();
static void funkcja2();
Kompliator w takiej sytuacje zwraca warning " funkcja2() declared static but never defined". Z pliku nagłówkowego nie mogę deklaracji usunąć bo wtedy w plik1.c funkcja2() będzie nie widoczna dla funkcja1(). Rozwiązanie przesunięcia definicji funkcji2() nad definicję funkcji1() nie wchodzi w grę bo przedstawiłem tu uproszczony obraz sytuacji. Więc gdzie umieścić deklarację funkcji static.