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

एक उदाहरण के साथ सी में अस्थिर और प्रतिबंधित प्रकार के क्वालिफायर की व्याख्या करें

टाइप क्वालिफायर सी प्रोग्रामिंग भाषा में मौजूदा डेटा प्रकारों में विशेष गुण जोड़ते हैं।

एक उदाहरण के साथ सी में अस्थिर और प्रतिबंधित प्रकार के क्वालिफायर की व्याख्या करें

सी भाषा में तीन प्रकार के क्वालिफायर हैं और अस्थिर और प्रतिबंधित प्रकार के क्वालिफायर नीचे बताए गए हैं -

अस्थिर

एक वाष्पशील प्रकार के क्वालीफायर का उपयोग संकलक को यह बताने के लिए किया जाता है कि एक चर साझा किया गया है। यही है, एक चर को अन्य कार्यक्रमों (या) संस्थाओं द्वारा संदर्भित और बदला जा सकता है यदि इसे अस्थिर घोषित किया जाता है।

उदाहरण के लिए, वोलेटाइल इंट x;

प्रतिबंधित करें

इसका उपयोग केवल पॉइंटर्स के साथ किया जाता है। यह इंगित करता है कि सूचक केवल संदर्भ डेटा तक पहुँचने का एक प्रारंभिक तरीका है। यह अनुकूलन के लिए संकलक को अधिक सहायता प्रदान करता है।

उदाहरण कार्यक्रम

वोलेटाइल टाइप क्वालिफायर के लिए सी प्रोग्राम निम्नलिखित है -

   int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Cannot be replaced with *ptr+=9
   ____
   ____
   ____
      *ptr+=5;
से बदला नहीं जा सकता

यहाँ, संकलक दो कथनों *ptr+=4 और *ptr+=5 को एक कथन *ptr+=9 से प्रतिस्थापित नहीं कर सकता है। क्योंकि, यह स्पष्ट नहीं है कि क्या वेरिएबल 'ए' को अन्य पॉइंटर्स के माध्यम से सीधे (या) एक्सेस किया जा सकता है।

उदाहरण के लिए,

   restrict int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Can be replaced with *ptr+=9
   ____
   ____
      *ptr+=5;
____
   ____
से बदला जा सकता है

यहां, कंपाइलर दो स्टेटमेंट्स को एक स्टेटमेंट, *ptr+=9 से बदल सकता है। क्योंकि, यह सुनिश्चित है कि वेरिएबल को किसी अन्य संसाधन के माध्यम से एक्सेस नहीं किया जा सकता है।

उदाहरण

प्रतिबंधित कीवर्ड के उपयोग के लिए सी प्रोग्राम निम्नलिखित है -

#include<stdio.h>
void keyword(int* a, int* b, int* restrict c){
   *a += *c;
   // Since c is restrict, compiler will
   // not reload value at address c in
   // its assembly code.
   *b += *c;
}
int main(void){
   int p = 10, q = 20,r=30;
   keyword(&p, &q,&r);
   printf("%d %d %d", p, q,r);
   return 0;
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

40 50 30

  1. C भाषा में लूप कंट्रोल स्टेटमेंट क्या हैं? फ्लो चार्ट और प्रोग्राम के साथ समझाएं

    लूप कंट्रोल स्टेटमेंट का उपयोग स्टेटमेंट के सेट को दोहराने के लिए किया जाता है। वे इस प्रकार हैं - लूप के लिए लूप के दौरान डू-जबकि लूप लूप के लिए वाक्य रचना इस प्रकार है - for (initialization ; condition ; increment / decrement){    body of the loop } फ्लो चार्ट लूप के लिए फ्लो चार्ट इ

  1. इमेज ऐरे क्या है? C++ में उदाहरण देकर समझाएं

    डेटा के संग्रह को संग्रहीत और पुनर्प्राप्त करने के लिए एक सरणी एक सुविधाजनक तरीका है। OpenCV में, हम इस अवधारणा का उपयोग एक छवि सरणी में कई छवियों को लोड करने के लिए कर सकते हैं और उन्हें सरणी की अनुक्रमणिका संख्या का उपयोग करके दिखा सकते हैं। निम्न प्रोग्राम मैट्रिक्स सरणी में एकाधिक छवियों को लोड

  1. सी # में मूल्य प्रकारों और संदर्भ प्रकारों को समझाएं और इसके विपरीत करें

    सामान्य तौर पर, C# के सभी प्रकारों को दो मुख्य श्रेणियों में विभाजित किया जा सकता है - मान प्रकार और संदर्भ प्रकार . आइए प्रत्येक प्रकार को विस्तार से देखें। मान प्रकार मूल्य प्रकारों के वेरिएबल में सीधे उनका डेटा होता है। प्रत्येक चर के पास डेटा की अपनी प्रति होती है। इसलिए मान प्रकार के एक चर के