यदि मैं कोई फ़ंक्शन इनलाइन करता हूं तो क्या यह इसके लिंक को आंतरिक लिंकेज में बदल देता है? उदाहरण के लिए: मैं उपयोग कर रहा हूँ या दो फाइलों में इनलाइन फ़ंक्शन कॉल:क्या फ़ंक्शन इनलाइन बनाना इसके संबंध को प्रभावित करता है?
file1.cpp
//function definition
inline void foo() {}
file2.cpp
//function definition
inline void foo() {}
क्यों यह कॉल करने के लिए सक्षम होने के लिए मैं हर फाइल में इनलाइन समारोह को परिभाषित करने की जरूरत है? मुझे एक आंतरिक संबंध मिल रहा है? अगर मैं static inline
का उपयोग करता हूं तो क्या होगा?
जबकि मुझे पता है कि टैग सी ++ है, यह जानना अच्छा है कि सी में इनलाइनें डिफ़ॉल्ट आंतरिक लिंकेज हैं, सी ++ –
@ जेसे के विपरीत: नहीं, इसके विपरीत नहीं। इनलाइन फ़ंक्शन सी (सी 99) में डिफ़ॉल्ट रूप से बाहरी लिंक भी डिफ़ॉल्ट घोषित नहीं किया जाता है। – user1086635
@ user1086635: नहीं, सी में डिफ़ॉल्ट रूप से आंतरिक संबंध है। सी 99 6.7.4/6 कहता है "एक इनलाइन परिभाषा फ़ंक्शन के लिए बाहरी परिभाषा प्रदान नहीं करती है, और किसी अन्य अनुवाद इकाई में बाहरी परिभाषा को रोक नहीं देती है।", एक अतिरिक्त 'बाहरी' घोषणा के साथ बाहरी परिभाषा बनाने का उदाहरण देना । –