Linkage

The extern Keyword

The extern  keyword is a linkage modifier that has different meanings in different contexts. In C++, when used it the form extern "C", it can be used to declare functions and variables which should have C linkage.

extern is not normally used in function definitions/declarations.

With variables, extern is normally used in-front of a variable declaration to declare that it is defined elsewhere (this will stop the compiler from trying to look for it, and save this for the linker step).

Inline functions have special rules on what the word extern means.