A linkage specification tells the compiler to compile declarations in a way that allows them to be linked together with declarations written in another language, such as C.
The standard requires all compilers to support extern "C"
in order to allow C++ to be compatible with C, and extern "C++"
, which may be used to override an enclosing linkage specification and restore the default. Other supported linkage specifications are implementation-defined.