c - एक लूप के भीतर घोषित चर




for-loop (2)

अधिकांश आधुनिक संकलक के लिए, यह कोई फर्क नहीं पड़ता। वे प्रोसेसर रजिस्टरों को असाइन करेंगे या चर के रूप में यथासंभव कुशलतापूर्वक स्थान रखेंगे।

अगर मैं एक पाश के भीतर एक चर को घोषित करना था, तो क्या यह पाश के बाहर घोषणा करने के लिए तेज है? क्या कार्यक्रम प्रत्येक आवृत्ति पर n लिए स्मृति को पुनः आवंटित करता है या पूरे स्मृति स्थान का उपयोग करता है?

for(int i=0;i<10;i++)
{
    int n = getNumber();
    printf("%d\n",n);
}

बनाम

int n;
for(int i=0;i<10;i++)
{
    n = getNumber();
    printf("%d\n",n);
}

कोई भी आधुनिक संकलक इन मशीन कोड को अनुकूलित करेगा, इसलिए आपको कोई अंतर नहीं दिखना चाहिए।





for-loop