निम्नलिखित सरलीकृत example.c
फ़ाइल पर cc -std=c99 example.c
कर:सी 99 में इनलाइन फ़ंक्शन को सही तरीके से इनलाइन करने और उपयोग करने के लिए कैसे करें? (निर्माण विफल रहता है)
inline void a()
{
}
int main()
{
a();
return 0;
}
मुझे हो जाता है:
example.c :(पाठ + 0x7):।
समारोह `मुख्य 'में: करने के लिए 'एक'
collect2 अपरिभाषित संदर्भ: ld 1 से बाहर निकलें स्थिति लौटा
मुझे यह समझ के रूप में सी 99 मानक की आवश्यकता के साथ क्या करना है ताकि प्रत्येक इनलाइन गैर स्थैतिक फ़ंक्शन के लिए एक और परिभाषा की मांग की जा सके जो उन मामलों में उपयोग किया जाता है जहां शरीर को रेखांकित नहीं किया जा सकता है? यदि ऐसा है, तो मुझे लगता है कि मैं इसके बजाय static inline
के साथ कर सकता हूं, लेकिन मैं नहीं चाहता कि यह मुझे बाद में काट दे, तो यहां कार्रवाई का सबसे अच्छा तरीका क्या होगा? जाहिर है, मैं सी 99 से चिपकना चाहता हूं और मैं कुछ कार्यों को रेखांकित करना चाहता हूं। (हाँ, मुझे पता है कि कंपाइलर आमतौर पर जानता है कि बिना बताए इनलाइन क्या है, लेकिन मेरे पास कारण हैं)
'इनलाइन' कीवर्ड वह नहीं है जो आपको लगता है। यह संकलक के लिए सबसे अच्छा संकेत है कि यह कोड रेखांकित होने के लिए उम्मीदवार हो सकता है। बदतर, यह अनदेखा किया गया है। – jer
क्या आप अन्य फाइलों को अपने सीसी के माध्यम से संकलित कर सकते हैं? शायद कंपाइलर में समस्या। –
असल में मैं '-विनलाइन' का उपयोग कर रहा हूं इसलिए मेरे मामले में इसे अनदेखा नहीं किया जाएगा। मुझे यह निर्दिष्ट करने के लिए क्षमा न करें, लेकिन मुझे नहीं लगता कि कोई इस बात पर टिप्पणी करेगा कि सी में 'इनलाइन' का मतलब क्या है या मामलों के उस तरफ प्रतिक्रिया दे रहा है। उपरोक्त के अधिकांश अन्य बदलावों में, आप बिल्कुल बिल्कुल सही हैं। @ मिहरन नहीं, कंपाइलर के साथ कोई समस्या नहीं है। सी 99 चश्मे के साथ अधिक बारीकी से जांच करने के बाद, मैंने इनलाइन फ़ंक्शन को 'स्थिर इनलाइन' के रूप में निर्दिष्ट किया है और सब कुछ काम करता है। मैं जानना चाहता हूं कि क्या मैं यहां सही कदम उठा रहा हूं ... – amn