17 Library introduction [library]

17.6 Library-wide requirements [requirements]

17.6.2 Using the library [using]

17.6.2.3 Linkage [using.linkage]

Entities in the C++ standard library have external linkage ([basic.link]). Unless otherwise specified, objects and functions have the default extern "C++" linkage ([dcl.link]).

Whether a name from the C standard library declared with external linkage has extern "C" or extern "C++" linkage is implementation-defined. It is recommended that an implementation use extern "C++" linkage for this purpose.180

Objects and functions defined in the library and required by a C++ program are included in the program prior to program startup.

See also: replacement functions ([replacement.functions]), run-time changes ([handler.functions]).

The only reliable way to declare an object or function signature from the Standard C library is by including the header that declares it, notwithstanding the latitude granted in 7.1.7 of the C Standard.