मैं System V Application Binary Interface पढ़ रहा हूं, और एक ऐसा हिस्सा है जिसे मैं समझ नहीं सकता।सरणी के लिए एक कॉलिंग सम्मेलन क्यों है?
पहले, दस्तावेज़ कहा गया है कि सी
(पेज 10) के अलावा अन्य भाषाओं के लिए एक ABI निर्दिष्ट करने के लिए
कोई प्रयास नहीं किया गया है।
बाद में, पेज 20 पर, सरणियों स्मृति सूचक आदि .: के रूप में वर्गीकृत किया जाता है
कुल (संरचनाओं और सरणियों) और संघ प्रकार के वर्गीकरण से काम करता है इस प्रकार है:
...वर्गीकरण तब कॉलिंग सम्मेलनों को परिभाषित करने के लिए उपयोग किया जाता है - उन पर मूल्यों और सीमाओं को कैसे पारित किया जाता है और कार्यों से लौटाया जाता है। अगर मैं एल्गोरिदम सही ढंग से पढ़ रहा हूं, तो एक सरणी को इंटेगर, मेमरी, या एसएसई के रूप में वर्गीकृत किया जा सकता है।
लेकिन सी भाषा में, सरणी हमेशा पास हो जाती हैं और पॉइंटर्स के रूप में लौटती हैं। तो यह सरणी वर्गीकृत करने के लिए उपयोगी क्यों है और सरणी वर्ग किस स्थिति में मायने रखता है?
पहले बोली, अपने आप में, समझने में आसान है, क्योंकि सी है [सामान्य भाषा] (https: // en यूनिक्स दुनिया के .wikipedia.org/विकी/लिंगुआ_फ्रान्का)। दूसरे उद्धरण के लिए, सी सी पॉइंटर्स के रूप में सरणी पास करता है (या रेटर को अपने पहले तत्व में एक पॉइंटर को सरणी क्षय होने देता है) क्योंकि यह सी शुरुआत से ही काम करता है और सी विनिर्देश कहता है कि यही होना चाहिए। –
[संबंधित प्रश्न] (http://stackoverflow.com/questions/38800044/what-kind-of-c11-data-type-is-an-array-according-to-the-amd64-abi)। –