C++ में किसी फ़ंक्शन को घोषित करते समय extern "C" का उपयोग करने की आवश्यकता होती है जिसे C में कार्यान्वित/कंपाइल किया गया हो।
extern "C" का उपयोग करने से कंपाइलर को पता चलता है कि हम C नामकरण और कॉलिंग कन्वेंशन का उपयोग करना चाहते हैं। यह कंपाइलर को हमारे C++ कोड के अंदर C मोड में प्रवेश करने का कारण बनता है। इसकी आवश्यकता इसलिए है क्योंकि C++ कंपाइलर अपने सिंबल टेबल में नामों को C कंपाइलर्स की तुलना में अलग तरीके से मैंगल करते हैं और इसलिए C कंपाइलर्स की तुलना में अलग व्यवहार करते हैं।