कुछ पुराने कोड है कि मैं सिर्फ भर में आया था:यह कोड अभी भी क्यों काम करता है?
MLIST * new_mlist_link()
{
MLIST *new_link = (MLIST *) malloc(sizeof(MLIST));
new_link->next = NULL;
new_link->mapi = NULL;
new_link->result = 0;
}
यह किसी लिंक किए गए सूची बनाने के लिए बुलाया जा रहा है गया था, लेकिन मैंने देखा है कोई बयान नहीं है:,
return new_link;
भी वापसी कथन के बिना वहाँ
सूची अभी भी ठीक से बनाया गया है। ऐसा क्यों हुआ?
संपादित करें: प्लेटफार्म: मैंड्रिवा 2009 64 बिट लिनक्स 2.6.24.7-सर्वर जीसीसी 4.2.3-6mnb1
संपादित करें: अजीब बात है ... इस कोड को भी सफलतापूर्वक के बारे में 5 अलग अलग लिनक्स प्रतिष्ठानों पर, भाग गया सब विभिन्न संस्करण/स्वाद, साथ ही एक मैक।
वहाँ गूंगा भाग्य से अलग कोई संभावित जवाब है, जब तक (या शायद भले ही) आप हमें क्या मंच बताएं। – Potatoswatter
यह एक स्थिर कोड चेकर का उपयोग करने के लिए एक अच्छा मामला बनाता है। – semaj
दिलचस्प है कि यह कई प्लेटफार्मों पर चला। इसमें केवल एक स्थानीय चर है, इसलिए इंटेल पर ईसीसी (या इसके 64-बिट समतुल्य) में एक स्थानीय चर को स्टोर करने के लिए जीसीसी के लिए यह बहुत मानक होना चाहिए, और वापसी मूल्यों के लिए उस रजिस्टर का उपयोग करना भी आवश्यक है। –