2009-08-12 10 views
24

इसका क्या अर्थ है और सी/सी ++ प्रोग्रामर के लिए इसके बारे में जानना कितना महत्वपूर्ण है?सी और सी ++ के संदर्भ में सक्रियण रिकॉर्ड क्या है?

क्या यह कम से कम अवधारणाओं के प्लेटफार्मों में समान है?

मैं एक समारोह के द्वारा स्थानीय चर स्टोर करने के लिए इस्तेमाल किया आबंटित स्मृति का एक ब्लॉक के रूप में यह समझ में ...

मैं और अधिक

+7

उर्फ ​​स्टैक फ्रेम - देख http://en.wikipedia.org/wiki/Activation_record # संरचना –

+1

@Neil, आपकी टिप्पणी का जवाब होना चाहिए था। –

+0

मैं सहमत हूं, लेकिन मुझे लगता है कि @ एलबी ने उसे हराया :) – vehomzzz

उत्तर

33

पर एक सक्रियण रिकॉर्ड स्टैक फ़्रेम के लिए एक अन्य नाम है । यह डेटा संरचना है जो कॉल स्टैक बनाती है। यह आम तौर पर से बना है: फोन करने वाले कॉल प्राप्त करने वाला का

  • पैरामीटर
  • कॉल स्टैक इस प्रकार सक्रियण रिकॉर्ड के किसी भी संख्या से बना है के लिए

  • वापसी पते के कॉल प्राप्त करने वाला को

    • स्थानीय लोगों कि स्टैक में जोड़ा जाता है क्योंकि नए सबराउटिन जोड़े जाते हैं, और स्टैक (आमतौर पर) से वापस लौटने के बाद हटा दिए जाते हैं।

      तत्वों की वास्तविक संरचना और व्यवस्था प्लेटफार्म और यहां तक ​​कि कार्यान्वयन भी परिभाषित किया गया है।

      C/C++ प्रोग्रामर के लिए, इस संरचना का सामान्य ज्ञान कन्वेंशनों कॉलिंग और यहां तक ​​कि क्यों बफ़र करते अतिप्रवाह 3 पार्टी दुर्भावनापूर्ण कोड दौड़ा होने की अनुमति जैसे कुछ कार्यान्वयन सुविधाओं को समझने के लिए उपयोगी है।

      एक और अंतरंग ज्ञान ऊपर की अवधारणाओं को आगे बढ़ाएगा और प्रोग्रामर को उनके एप्लिकेशन को डीबग करने और डिबगर या डिबगिंग प्रतीकों की अनुपस्थिति में भी स्मृति डंप पढ़ने की अनुमति देगा।

      अधिक आम तौर पर, एक सी/सी ++ प्रोग्रामर अपने शौकिया प्रोग्रामिंग कैरियर के एक बड़े हिस्से से जा सकता है, बिना किसी कॉल के स्टैक को भी।

  • +0

    @ एलेक्सेंड्रे बेल मैं समझता हूं कि एआर (स्टैक फ्रेम) में स्थानीय वर्र्स, रीट एड्रेस और पैराम्स शामिल हैं। मेरा सवाल है: फ़ंक्शन के लिए कोड कहां संग्रहीत किया जा रहा है? –

    +3

    @FernandoGabrieli सी जैसे कोड सेगमेंट, स्टैक सेगमेंट, हीप सेगमेंट में विभिन्न सेगमेंट हैं। इसलिए फ़ंक्शन कोड कोड सेगमेंट पर संग्रहीत किया जाएगा। [यह] देखें (http://www.geeksforgeeks.org/memory-layout-of-c-program/) – Abhisek

    7

    सक्रियण रिकॉर्ड जानना चाहता हूँ एक अवधारणा है कि अधिक इस्तेमाल नहीं है सी या सी ++ लैंगुग्स के बारे में बात करने में खुद को। सक्रियण रिकॉर्ड का प्रारूप बहुत अधिक प्लेटफार्म विशिष्ट है।

    अवधारणात्मक रूप से, पैरामीटर कैसे पारित किए जाते हैं, स्थानीय चर के जीवनकाल, जहां कार्य वापस आते हैं और कैसे कॉल स्टैक एक निष्पादन फेंक के जवाब में अवांछित है, सी ++ के सभी महत्वपूर्ण भाग हैं और बाद वाले सी के अपवाद के साथ) । इन्हें कैसे कार्यान्वित किया जाता है, इसका विवरण इस बात को प्रभावित करेगा कि सक्रियण रिकॉर्ड किसी विशेष प्लेटफ़ॉर्म की तरह दिखता है लेकिन इसका ज्ञान आमतौर पर सी ++ या सी

    -2

    सक्रियण रिकॉर्ड निम्न तीन बातें शामिल 1.Function परिभाषा 2.Variable परिभाषा 3.Function आवेदन (समारोह कॉल)

    संबंधित मुद्दे