I think the examples lead to some plausible but wrong ideas that might otherwise have arisen.
In paragraph 6, we can expect that f() has an external connection, since it means that extern “usually” (ie in the file area) means, but it is actually an internal connection due to the declaration of static further up.
In paragraph 7, someone might expect extern void q(); will make q() available outside (or in free speech in relation to the external) p() , so it could be called in middle() , but this also will not happen.
Both will still be true without the extern keyword, but then it extern as no surprise that people expecting extern mean something else.
Brendan E. Coughlan
source share