Name

extern storage class — External storage class specifier

Synopsis

               storage-class-specifier := extern
linkage-specification ::= extern string-literal { [declaration-seq] } | 
    extern string-literal 
               declaration
            

The extern storage class specifier marks a declaration as having external linkage. An external object or function can be defined in one file and used in other files.

image with no caption

The extern keyword can also be used to specify language linkage: you provide the language name as a string literal. The "C++" language is the default. "C" linkage is also supported. Other languages are implementation-defined.

Example

extern "C" int callable_from_C(int x, int y);
extern void func(int);
extern const double pi;

See Also

declaration, static, type, Chapter 2

Get C++ In a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.