Połączenie zewnętrzne
Jeśli pierwsza deklaracja na poziomie zakresu pliku dla identyfikatora nie używa static
specyfikatora klasy magazynu, obiekt ma połączenie zewnętrzne.
Jeśli deklaracja identyfikatora funkcji nie ma specyfikatora klasy magazynu, jego połączenie jest określane dokładnie tak, jakby zostało zadeklarowane za pomocą specyfikatora extern
klasy magazynu . Jeśli deklaracja identyfikatora obiektu ma zakres plików i żaden specyfikator klasy magazynu, jego połączenie jest zewnętrzne.
Nazwa identyfikatora z połączeniem zewnętrznym wyznacza tę samą funkcję lub obiekt danych, co każda inna deklaracja dla tej samej nazwy z zewnętrznym połączeniem. Dwie deklaracje mogą znajdować się w tej samej jednostce tłumaczenia lub w różnych jednostkach tłumaczenia. Jeśli obiekt lub funkcja ma również globalny okres istnienia, obiekt lub funkcja jest współużytkowany przez cały program.