सी cdecl का उपयोग करता है, जिसे मैंने देखा है और असेंबली से बुलाया है। यह काफी अच्छा लगता है, तो संगतता तोड़ क्यों? एक और सम्मेलन की आवश्यकता क्यों थी?क्यों कंपाइलर "जीसी" सी से अलग कॉलिंग सम्मेलन का उपयोग करता है?
7
A
उत्तर
5
क्योंकि एक ही कॉलिंग सम्मेलन में कोई फायदा नहीं है। कॉल कोड और सी कोड एक-दूसरे को सीधे कॉल नहीं कर सकते हैं, भले ही कॉलिंग कन्वेंशन समान होगा क्योंकि गो स्प्लिट स्टैक्स का उपयोग करता है।
ओटीओएच, यह gccgo में समझ में आता है, क्योंकि जीसीसी कुछ आर्किटेक्चर के लिए सी स्प्लिट स्टैक का समर्थन करता है। और, आईआईआरसी, कॉलिंग सम्मेलन उस संगत के कारण है। (अधिक details here।)
अस्वीकरण: मैंने वास्तव में कभी भी gccgo का उपयोग नहीं किया था।
संबंधित मुद्दे
- 1. इतने सारे अलग-अलग कॉलिंग सम्मेलन क्यों हैं?
- 2. एआरएम से सी कॉलिंग सम्मेलन, एनईओएन
- 3. सी ++ का अपवाद क्यों कॉलिंग विवरण प्रदान नहीं करता है?
- 4. सी ++ लैम्ब्डा फ़ंक्शन का डिफ़ॉल्ट कॉलिंग सम्मेलन क्या है?
- 5. सरणी के लिए एक कॉलिंग सम्मेलन क्यों है?
- 6. क्या सी कॉलिंग सम्मेलन के लिए तर्क आदेश का प्रदर्शन प्रभाव पड़ता है?
- 7. जीडीबी सी ++ से अलग-अलग फ्लोटिंग-पॉइंट अंकगणित का मूल्यांकन क्यों करता है?
- 8. जीसीसी एमआईपीएस -32 कॉलिंग सम्मेलन/ढेर फ्रेम परिभाषा
- 9. सी/सी ++ में विभिन्न कॉलिंग सम्मेलन क्या हैं और प्रत्येक का क्या अर्थ है?
- 10. विज़ुअल स्टूडियो सी # और सी ++ के लिए अलग इंडेंटेशन सेटिंग्स का उपयोग क्यों करता है?
- 11. सी # कंपाइलर आईएल में अतिरिक्त ओपकोड क्यों उत्सर्जित करता है?
- 12. सी # कंपाइलर एक अमान्य विधि के अधिभार का उपयोग क्यों करता है?
- 13. विभिन्न नामों के बीच पूर्वानुमान नामकरण सम्मेलन अलग क्यों है?
- 14. विभिन्न कंपाइलर के लिए अलग-अलग आउटपुट - सी और सी ++
- 15. ओकैमल कॉलिंग सम्मेलन: क्या यह एक सटीक सारांश है?
- 16. सी/सी ++ आकार का ऑपरेटर: आकार ('ए') अलग-अलग मान क्यों देता है?
- 17. पाइथन जीसी के लिए संदर्भ गणना और मार्क-एंड-स्वीप दोनों का उपयोग क्यों करता है?
- 18. चार मोनो सी # कंपाइलर क्यों हैं?
- 19. सी ++ 11 6 अलग-अलग नियमित अभिव्यक्ति व्याकरण का समर्थन क्यों करता है?
- 20. सी ++ लिंकिंग का उपयोग लगभग सीपीयू क्यों नहीं करता है?
- 21. सी # अंतर्निहित शून्य का उपयोग क्यों करता है?
- 22. ऐप्पल उद्देश्य सी का उपयोग क्यों करता है?
- 23. आईबीएम एक्सएल सी/सी ++ कंपाइलर से यह चेतावनी क्यों?
- 24. क्रोम इन दो परिदृश्यों में क्लाइंट कैश का अलग-अलग उपयोग क्यों करता है?
- 25. क्यों सी # में दशमलव अन्य सी # प्रकार से अलग है?
- 26. क्या सी # कंपाइलर वीबी.नेट कंपाइलर से बेहतर है?
- 27. सी पुस्तकालयों से कॉलिंग सी ++ फ़ंक्शन पॉइंटर्स
- 28. जावा से कॉलिंग सी # कोड?
- 29. सी कॉलिंग ++ (नहीं सी) कॉमन लिस्प से?
- 30. सी/सी ++ stdlib नामकरण सम्मेलन का नाम?
गो एकाधिक रिटर्न वैल्यू और जीसी सेगमेंट स्टैक्स का उपयोग करता है। मुझे पूरी तरह से यकीन नहीं है, लेकिन अगर यह सुविधाएं कॉलिंग सम्मेलनों से संबंधित हैं तो मुझे आश्चर्य नहीं होगा। अफैक, सीडीसीएल के साथ कई मूल्यों को वापस करने का एकमात्र तरीका एक सूचक को संरचना में वापस करना है। –
सी सीडीईसी कॉलिंग सम्मेलन का उपयोग नहीं करता है। कुछ कार्यान्वयन इसका उपयोग करते हैं, और कुछ अन्य कॉलिंग सम्मेलनों का उपयोग करते हैं। – nos
AFAIK Google के कार्यान्वयन का उपयोग एक कॉलिंग कन्वेंशन का उपयोग करता है जो सी के बराबर है, जहां उन जगहों को छोड़कर जहां सी अवधारणा व्यक्त नहीं कर सकता है गो उपयोग (जैसे कि जब कई रिटर्न मान होते हैं) – fuz