Ja sobie to tłumacze w jeszcze jeden sposób, extern stosuje wszędzie tam, gdzie zmienne mają być widoczne w pliku main.c
GwynBleidD napisał(a):
Czyli kompilator dostaje informację "nie szukaj tej zmiennej w bieżąco kompilowanym pliku, ona została w innym zdefiniowana".
To w zasadzie oddaje clue.
Drugim przykładem tego jest bodajże film gdzie Mirek pisze Sneaka, tam jest już to na wyższym poziomie abstrakcji bo jest używane rzutowanie na typ nie jawny

(ależ to fajnie brzmi). Właśnie z podobnego powodu dla którego używamy "extern" by poinformować kompilator, że wiemy co robimy. Przy void, po prostu mówimy olej typ, a przy extern, słuchaj no panie kompilator (linker) ta zmienna została już zdefiniowana, a tu masz tylko informacje, co to za zmienna i jak się nazywa.
PS. Normalnie hasłem "rzutowanie na typ niejawny" można by wyrywać laski na Polibudzie

Chodź z rzutuje cię niejawnie

.