दिलचस्प पोस्ट
जावा में वेबकैम से छवि कैप्चर करना? पायथन में 'और' और 'या' रिटर्न ऑरेंडेंड 'क्यों करते हैं? रूबी में मैं एचटीएमएल संस्थाओं को एनकोड / व्याख्या कैसे करूं? Hadoop प्रोग्राम में मैपर में इनपुट फ़ाइल का नाम कैसे प्राप्त करें? वैरिएबल का समाधान नहीं किया जा सकता Matplotlib स्कैटर चार्ट (कोड, एल्गोरिथ्म, टिप्स) के लिए लेबल प्लेसमेंट में सुधार कैसे करें? NSURL कनेक्शन और भव्य केंद्रीय प्रेषण क्यों jQuery UI के datepicker एक गतिशील डोम के साथ तोड़? आप पीसीएम या WAV नमूने की मौलिक आवृत्ति का विश्लेषण कैसे करते हैं? पायथन में एक YAML फ़ाइल को पार्स करना, और डेटा तक पहुंचने में? पायथन: एन सूचियों की सूची बनाने का सबसे तेज़ तरीका आईईई के लिए वैकल्पिक: जेएसएफ में टुकड़ा आईफोन पर HTML को पार्स करना कैसे पता चलेगा कि कोई तारीख समय सी # में एक DateRange के बीच है PHP स्क्रिप्ट पर एक साथ अनुरोध

"Char s " जैसे फ़ंक्शन के सरणी पैरामीटर में स्थिर कीवर्ड का उद्देश्य क्या है?

कुछ स्रोत कोड को ब्राउज़ करते हुए मुझे इस तरह एक समारोह में आया था:

void someFunction(char someArray[static 100]) { // do something cool here } 

कुछ प्रयोगों के साथ ऐसा प्रतीत होता है कि अन्य क्वालिफायर भी वहां उपस्थित हो सकते हैं:

 void someFunction(char someArray[const]) { // do something cool here } 

ऐसा प्रतीत होता है कि क्वालिफायर को केवल [ ] अंदर ही अनुमति दी जाती है, जब सरणी को फ़ंक्शन के पैरामीटर के रूप में घोषित किया जाता है। ये क्या करते हैं? फ़ंक्शन मापदंडों के लिए यह अलग क्यों है?

Solutions Collecting From Web of ""Char s " जैसे फ़ंक्शन के सरणी पैरामीटर में स्थिर कीवर्ड का उद्देश्य क्या है?"

पहला घोषणा कंपाइलर को बताता है कि someArray कम से कम 100 तत्व हैं यह अनुकूलन के लिए उपयोग किया जा सकता है उदाहरण के लिए यह भी मतलब है कि someArray कभी नल नहीं हैं।

ध्यान दें कि सी स्टैंडर्ड को कम्पाइलर को निदान करने की आवश्यकता नहीं है, जब फ़ंक्शन पर कॉल इन आवश्यकताओं को पूरा नहीं करता है (यानी यह मूक अपरिभाषित व्यवहार है)।

दूसरा घोषणा केवल कुछ someArray ( someArray के तत्वों!) की घोषणा करता है, अर्थात् आप कुछ नहीं लिख सकते someArray=someOtherArray । यह समान है जैसे पैरामीटर char * const someArray

यह सिंटैक्स फ़ंक्शन पैरामीटर सूची में किसी सरणी घोषणाकर्ता के भीतर [] के भीतर ही उपयोगी है, अन्य संदर्भों में इसका अर्थ नहीं होगा

मानक पाठ, जो उपरोक्त दोनों मामलों को कवर करता है, C11 6.7.6.3/7 (सीडी 9 में 6.7.5.3/7 था) में है:

"प्रकार की सरणी" के रूप में पैरामीटर की घोषणा को "टाइप करने के लिए योग्य सूचक" के लिए समायोजित किया जाएगा, जहां प्रकार के क्वालिफायर (यदि कोई हैं) जो [ और ] सरणी प्रकार व्युत्पत्ति के भीतर विनिर्दिष्ट हैं। यदि खोजशब्द स्थिर भी [ और ] सरणी प्रकार व्युत्पत्ति के भीतर प्रकट होता है, तो फ़ंक्शन के प्रत्येक कॉल के लिए, संबंधित वास्तविक तर्क के मान को निर्दिष्ट के रूप में कम से कम जितने तत्वों के साथ एक सरणी के पहले तत्व तक पहुंच प्रदान करेगा आकार अभिव्यक्ति द्वारा