W książę Pana Kardasia „Mikrokontrolery AVR język C podstawy programowania” wydanie 1 na stronie 130, w rozdziale o plikach *.c i *.h projektu jest napisane:
Cytuj:
…Natomiast jeśli zechcesz świadomie wręcz uniemożliwić wykorzystanie pewnych drobnych funkcji narzędziowych, które są wykorzystywane tylko przez funkcje udostępniane, to możesz skorzystać z przydomku, static. Te funkcje, które mają być niewidoczne, zaopatrzysz w słówko static na początku. Podobnie możesz postąpić ze zmiennymi globalnymi. Może się również okazać po analizie, że tylko niektóre będą nadawały się do udostępniana na potrzeby innych modułów. Wtedy tylko te wybrane deklaracje zmiennych wraz z ze słówkiem extern na początku wstawisz do pliku klawiatura.h…
I teraz w związku z tym mam takie pytania:
1. Czy słówka static i extern mają takie samo działanie zarówno dla funkcji jaki zmiennych?
2. Czy słówka static i extern muszą poprzedzać każdą deklarację zmiennych i funkcji w plikach *.c i *.h?