Why is it the case that the name of the function f4 has internal linkage, and not a C language linkage?

Viewed 89

The fifth example in [dcl.link]/4 states the following:

extern "C" {
    static void f4(); // the name of the function f4 has internal linkage (not C language linkage)
                      // and the function’s type has C language linkage.
}

Why is this? Why is it the case that the name of the function f4 has internal linkage, and not a C language linkage?

P.S.: I'm asking this from a perspective of a language-lawyer. That is, how can one derive the commented statement above, from normative paragraphs in the Standard?

1 Answers
Related