Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में रजिस्टर स्टोरेज क्लास क्या है?

C प्रोग्रामिंग भाषा में चार स्टोरेज क्लास हैं:

  • auto
  • extern
  • static
  • register

रजिस्टर वेरिएबल्स

  • कीवर्ड: register
  • रजिस्टर वेरिएबल्स के मान CPU रजिस्टर्स में संग्रहीत होते हैं, सामान्य वेरिएबल्स की तरह मेमोरी (RAM) में नहीं।
  • रजिस्टर्स CPU में अस्थायी स्टोरेज यूनिट्स हैं।
  • ये सामान्य वेरिएबल्स की तुलना में तेज एक्सेस टाइम प्रदान करते हैं।

उदाहरण 1: बेसिक उपयोग

#include <stdio.h> 

int main() {
    register int i;
    for(i = 1; i <= 5; i++)
        printf("%d ", i);
    return 0;
}

आउटपुट

1 2 3 4 5

उदाहरण 2: डिफ़ॉल्ट मान

#include <stdio.h> 

int main() {
    register int a;
    printf("%d", a);  // अनिर्दिष्ट मान प्रिंट करता है (कंपाइलर पर निर्भर)
    return 0;
}

आउटपुट

0  (या कोई गार्बेज मान - अनिर्दिष्ट व्यवहार)

नोट: रजिस्टर वेरिएबल्स ऑटोमेटिकली इनिशियलाइज़ नहीं होते (ग्लोबल/स्टेटिक के विपरीत)।

उदाहरण 3: एड्रेस लेने का प्रयास (त्रुटि)

#include <stdio.h> 

int main() {
    register int i = 10;
    int *p;
    // int *p = &i;  // त्रुटि: रजिस्टर वेरिएबल का पता नहीं ले सकते
    // printf("Value: %d, Address: %p", *p, p);
    return 0;
}

आउटपुट

Error: address of register variable requested

महत्वपूर्ण प्रतिबंध

ऑपरेशनरजिस्टर वेरिएबल पर लागू?
मान असाइन करनाहाँ
मान पढ़नाहाँ
पता लेना (&)नहीं - कंपाइल टाइम एरर
sizeof ऑपरेटरनहीं - कंपाइल टाइम एरर

कब उपयोग करें

  • अक्सर एक्सेस होने वाले वेरिएबल्स (लूप काउंटर्स, फ्लैग्स)।
  • प्रदर्शन-महत्वपूर्ण कोड पथ।
  • नोट: आधुनिक कंपाइलर (GCC, Clang -O2/-O3) स्वचालित रूप से ऑप्टिमाइजेशन के दौरान वेरिएबल्स को रजिस्टर्स में आवंटित करते हैं। register कीवर्ड केवल एक संकेत (hint) है, कंपाइलर इसे अनदेखा कर सकता है।

सारांश

  • register तेज एक्सेस के लिए CPU रजिस्टर में स्टोरेज का अनुरोध करता है।
  • इसका पता नहीं लिया जा सकता।
  • आधुनिक कंपाइलर्स में यह ज्यादातर अनावश्यक है क्योंकि ऑप्टिमाइज़र बेहतर निर्णय लेते हैं।
  1. क्लाउड स्टोरेज क्या है? क्लाउड स्टोरेज क्या है?

    क्लाउड स्टोरेज, फ़ाइलों को ऑनलाइन (क्लाउड में) संग्रहीत करने की एक सेवा है। अपनी फ़ाइलों को स्थानीय हार्ड ड्राइव, एक्सटर्नल हार्ड ड्राइव या फ्लैश ड्राइव पर रखने के बजाय, आप उन्हें ऑनलाइन सहेज सकते हैं। क्लाउड स्टोरेज का उपयोग क्यों करें? क्लाउड स्टोरेज सेवाओं का उपयोग करने के कई कारण हैं। हो सकता ह

  1. - C++ में रजिस्टर स्टोरेज क्लास

    C में, रजिस्टर स्टोरेज क्लास स्पेसिफायर कंपाइलर को इंगित करता है कि ऑब्जेक्ट को मशीन रजिस्टर में संग्रहीत किया जाना चाहिए। रजिस्टर स्टोरेज क्लास स्पेसिफायर आमतौर पर भारी उपयोग किए जाने वाले वेरिएबल्स के लिए निर्दिष्ट किया जाता है, जैसे लूप कंट्रोल वेरिएबल, एक्सेस समय को कम करके प्रदर्शन बढ़ाने की उम

  1. - C++ में वेरिएबल्स के स्टोरेज क्लासेस क्या हैं?

    एक स्टोरेज क्लास C++ प्रोग्राम के भीतर वेरिएबल्स और/या फंक्शन्स के स्कोप (विजिबिलिटी) और लाइफ-टाइम को परिभाषित करता है। ये स्पेसिफायर्स उस प्रकार से पहले आते हैं जिसे वे संशोधित करते हैं। C++ प्रोग्राम में निम्नलिखित स्टोरेज क्लासेस उपयोग की जा सकती हैं: auto register static extern mutable C में,