devxlogo

Linkage Specification

Linkage Specification

Linkage between C++ and non-C++ code fragments can be achieved using a linkage-specification. For example:

 extern "C" int func(int arg1); // func has C linkage

The quoted string in the linkage specification indicates the required language linkage. The linkage rules of a given language affect the way function names are handled (e.g., all uppercase or not, whether name mangling is applied etc.), the argument passing mechanism and the return value. Using a linkage-specification with a string that is unknown to the implementation is an error. A C++ compiler must support two linkage types: extern “C” and extern “C++,” which is the default linkage type and is therefore redundant. Many implementations support additional languages, for instance:

 extern "Ada" int func(int arg1); // Ada linkageextern "Fortran" int func(int arg1); // Fortran linkage
See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist