Advance-C/C2/Storage-class-specifiers/Hindi

From Script | Spoken-Tutorial
Revision as of 14:29, 8 December 2015 by Shruti arya (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 'Storage class specifiers' पर स्पोकन ट्यूटोरियल में आपका स्वागत है।
00:07 इस ट्यूटोरियल में हम कुछ उदाहरणों की मदद से निम्न के बारे में सीखेंगे
  • 'Storage class specifiers'
  • 'auto keyword'
  • 'static keyword'
  • 'extern keyword'
  • 'register keyword'
00:22 इस ट्यूटोरियल के लिए मैं उपयोग कर रही हूँ 'उबन्टु ऑपरेटिंग सिस्टम वर्शन 11.10' और 'उबन्टु पर gcc कम्पाइलर वर्शन 4.6.1'
00:34 इस ट्यूटोरियल के अनुसरण के लिए आपको C ट्यूटोरियल्स के साथ परिचित होना चाहिए।
00:41 यदि नहीं तो सम्बंधित ट्यूटोरियल्स के लिए कृपया हमारी दर्शायी वेबसाइट पर जाएँ।
00:47 मैं 'storage class specifiers' के परिचय के साथ शुरू करुँगी।
00:52 * 'Specifiers' कम्पाइलर को बताते है कि 'वेरिएबल' को कहाँ संचित करना है।
00:57 'वेरिएबल' को कैसे सेव करते हैं।
00:59 'वेरिएबल' की शुरूआती वैल्यू क्या होती है।
01:03 'वेरिएबल' का लाइफ टाइम
01:06 सिंटेक्स है: 'storage_specifier data_type variable _name'
01:13 स्टोरेज टाइप स्पेसिफायर के निम्न प्रकार होते हैं:
  • 'auto'
  • 'static'
  • 'extern'
  • 'register'
01:21 अब 'ऑटो कीवर्ड' के साथ शुरू करते हैं।
01:24 'ऑटो कीवर्ड' 'ऑटोमैटिक वेरिएबल' घोषित करता है।
01:28 यह लोकल स्कोप रखता है।
01:30 'कीवर्ड्स' स्वतः इनिशिअलाइज़्ड नहीं होते हैं।
01:34 आपको घोषणा के दौरान 'कीवर्ड्स' को स्पष्टता से इनिशिअलाइज़ करना चाहिए।
01:39 'कीवर्ड्स' का स्टोरेज स्पेस 'CPU मेमरी' होता है।
01:43 अब एक उदाहरण देखते हैं। मेरे पास एक कोड फाइल है; अब इसे देखते हैं।
01:49 ध्यान दें हमारी फाइल का नाम 'auto.c' है।
01:54 हमने 'increment' की तरह एक फंक्शन घोषित कर लिया है।
01:58 यह 'मेन फंक्शन' है।
02:00 'मेन फंक्शन' में, 'increment फंक्शन' चार बार कॉल होता है।
02:06 फिर हमारे पास 'return 0 statment' है।
02:10 अब 'फंक्शन की परिभाषा' देखते हैं।
02:14 यहाँ हमने वेरिएबल 'i' को 'auto int' की तरह घोषित किया है। यह लोकल स्कोप रखता है।
02:21 फिर हम 'printf' प्रयोग करके 'i' की वैल्यू दर्शाते हैं।
02:26 यहाँ 'i' की वैल्यू बड़ाई जाती है।
02:30 अब अपने कीबोर्ड पर एकसाथ 'Ctrl+Alt+T' कीज़ दबाकर टर्मिनल खोलें।
02:38 टाइप करें: 'gcc space auto.c space hyphen o space auto'. एंटर दबाएं।
02:48 टाइप करें: 'डॉट स्लैश auto'
02:51 आउटपुट ज़ीरो है।
02:54 अब अपने प्रोग्राम पर वापस आते हैं।
02:57 अब 'मेन फंक्शन' के ऊपर 'auto variable i' को 'इनिशिअलाइज़' करते हैं।
03:02 मैं इस घोषणा और 'इनिशिअलाइज़ेशन' को यहाँ से कट करुँगी और यहाँ पर पेस्ट करुँगी।

'Save' पर क्लिक करुँगी।

03:14 अब 'टर्मिनल' पर निष्पादन करते हैं। अप एरो की दो बार दबाएं।

एंटर बदबाएँ।

03:22 हमें एक एरर मिलती है: 'file-scope declaration of i specifies auto'
03:29 ऐसा इसलिए है क्योंकि एक 'ऑटो वेरिएबल' 'फंक्शन' के लिए 'लोकल' है।
03:34 हम इसको ग्लोबली 'इनिशिअलाइज़' नहीं कर सकते।
03:37 अब एरर को फिक्स करते हैं। अपने प्रोग्राम पर वापस आते हैं।
03:42 इसे मिटायें; इसे यहाँ पेस्ट करें।
03:47 'Save' पर क्लिक करें और 'टर्मिनल' पर निष्पादन करें।
03:52 अप एरो की दबाएं। पिछली कमांड को दोबारा कॉल करें।
03:57 एंटर दबाएं। टाइप करें: 'डॉट स्लैश auto' एंटर दबाएं।
04:03 यह काम कर रहा है ! आउटपुट ज़ीरो है।
04:07 ऐसा इसलिए है क्योंकि हमने 'i' की वैल्यू 0 से 'इनिशिअलाइज़' की है।
04:13 अब 'static variable' देखते हैं।
04:16 यद्यपि हम पिछले ट्यूटोरियल में 'static variable' के बारे में पढ़ चुके हैं। मैं यहाँ इसे संक्षेप में समझाउंगी।
04:24 'static' वेरिएबल्स 'ज़ीरो' से 'इनिशिअलाइज़' होते हैं।
04:28 'ब्लॉक' से प्रोग्राम कंट्रोल एग्ज़िट होने के बाद भी ये नष्ट नहीं होते हैं।
04:35 'वेरिएबल' की वैल्यू भिन्न 'फंक्शन कॉल्स' के बीच क़ायम रहती है।
04:41 स्टोरेज स्पेस 'CPU मेमरी' है।
04:45 अब एक उदाहरण देखते हैं। मैं वो समान कोड फाइल एडिट करुँगी।
04:51 अपने प्रोग्राम पर वापस आते हैं।
04:54 एक साथ 'Ctrl + Shft + S' कीज़ दबाएं।
05:01 अब मैं फाइल का नाम 'static' करुँगी। 'Save' पर क्लिक करुँगी।
05:10 अब, मैं 'variable i' के 'इनिशिअलाइज़ेशन' को बदलकर 'static int i equals to zero' करुँगी।

'Save' पर क्लिक करुँगी।

05:23 अब देखते हैं कि क्या होता है। 'टर्मिनल' पर फाइल को निष्पादित करते हैं।
05:30 टाइप करें: 'gcc space static.c space hyphen o space stat'. एंटर दबाएं।
05:41 टाइप करें 'डॉट स्लैश stat'. एंटर दबाएं।
05:46 आउटपुट निम्न की तरह दिखता है: 0, 1, 2, 3
05:51 ऐसा इसलिए है क्योंकि 'static variables' 'global variables' हैं।
05:56 'static variable' का स्कोप 'फंक्शन' के लिए 'लोकल' है जिसमें वो परिभाषित है।
06:03 ये 'फंक्शन कॉल्स' के बीच अपनी वैल्यू को नहीं खोते हैं।
06:08 अब 'extern keyword' के बारे में सीखते हैं।
06:12 'extern variable' का स्कोप पूरे मेन प्रोग्राम में है।
06:17 'extern variable' की परिभाषा 'C' प्रोग्राम में कहीं भी हो सकती है।
06:23 डिफ़ॉल्ट रूप से, 'extern variables' ज़ीरो से इनिशिअलाइज़ होते हैं।
06:28 ये प्रोग्राम में सारे 'फंक्शन्स' से एक्सेस किये जा सकते हैं।
06:33 ये 'CPU memory' में संचित होते हैं।
06:36 अब एक उदाहरण देखते हैं।
06:38 मेरे पास एक कोड फाइल है; अब इसे देखते हैं।
06:42 ध्यान दें हमारी फाइल का नाम 'extern.c' है।
06:47 मैंने 'इंटीजर वेरिएबल x' नामक एक वेरिएबल को '10' से 'इनिशिअलाइज़ किया है।
06:54 यह 'मेन फंक्शन' है। 'मेन फंक्शन' में मैंने एक 'extern integer variable y' घोषित किया है।
07:03 'printf' स्टेटमेंट प्रयोग करके हम 'x' और 'y' की वैल्यूज़ प्रदर्शित करेंगे।

यह 'return' स्टेटमेंट है।

07:12 'मेन फंक्शन' के बंद होने के बाद हम 'y' को '50' से इनिशिअलाइज़ करेंगे।
07:18 अब 'टर्मिनल' खोलते हैं और देखते हैं कि आउटपुट क्या होगा।
07:24 टाइप करे: 'gcc space extern.c space hyphen o space ext'. एंटर दबाएं।
07:35 टाइप करें: 'डॉट स्लैश ext'. एंटर दबाएं।
07:40 आउटपुट निम्न की तरह दिखेगा:

'The value of x is 10 ' 'The value of y is 50'

07:48 जैसे कि हमने पढ़ा है 'extern keyword' की वैल्यू मेन प्रोग्राम में शुरू से अंत तक होती है।
07:55 इस प्रोग्राम में कहीं भी इसे परिभाषित कर सकते हैं।
07:59 दोनों स्टेटमेंट्स सत्यापित होते हैं।
08:02 अब 'register keyword' पर जाते हैं।
08:06 'Register वेरिएबल्स' नार्मल वेरिएबल्स से ज़्यादा तेज़ी से एक्सेस किये जायेंगे।
08:13 ये 'main memory' के बजाए 'register memory' में संचित होते हैं।
08:19 वेरिएबल्स की सीमित संख्या उपयोग की जा सकती है चूँकि रजिस्टर साइज़ बहुत छोटा होता है।
08:25 16 bits, 32 bits या 64 bits.
08:30 अब एक उदाहरण देखते हैं। मेरे पास एक कोड फाइल है। अब इसे देखते हैं।
08:37 ध्यान दें फाइल का नाम 'register.c' है।
08:42 यहाँ हमने 'register integer variable' घोषित किया है।
08:47 यह वेरिएबल सीधे 'रजिस्टर मेमरी' में संचित होगा।
08:53 यह 'for loop' है जो '1' से '5' तक 'i' की वैल्यू दिखाता है।
08:59 यह 'i' की वैल्यू दिखायेगा।
09:03 अब प्रोग्राम को निष्पादित करते हैं और देखते हैं।
09:07 'टर्मिनल' पर, टाइप करें: 'gcc space register.c space hyphen o space register'
09:17 एंटर दबाएं। टाइप करें: 'डॉट स्लैश register' एंटर दबाएं।
09:25 आप निम्न की तरह प्रदर्शित आउटपुट देख सकते हैं: 'Values stored in register memory 1 2 3 4 5'
09:34 यह हमें इस ट्यूटोरियल के अंत में लाता है। इसे सारांशित करते हैं।
09:39 इस ट्यूटोरियल में हमने सीखा:
  • 'Storage class specifiers'
  • 'auto keyword'
  • 'static keyword'
  • 'extern keyword'
  • 'register keyword'
09:52 एक नियत कार्य में, पहले पाँच नंबर्स के जोड़ को प्रिंट करने के लिए एक प्रोग्राम लिखें।
09:59 प्रोग्राम में 'auto' और 'static' दोनों कीवर्ड्स को घोषित करें।
10:04 नीचे दिए लिंक पर उपलब्ध वीडिओ देखें।
10:07 यह स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है।
10:11 अच्छी बैंडविड्थ न मिलने पर आप इसे डाउनलोड करके देख सकते हैं।
10:16 स्पोकन ट्यूटोरियल प्रोजेक्ट टीम स्पोकन ट्यूटोरियल्स का उपयोग करके कार्यशालाएं चलाती है।
10:22 ऑनलाइन टेस्ट पास करने वालों को प्रमाणपत्र देते हैं। अधिक जानकारी के लिए कृपया contact@spoken-tutorial.org पर लिखें।
10:33 स्पोकन ट्यूटोरियल प्रोजेक्ट टॉक टू अ टीचर प्रोजेक्ट का हिस्सा है।
10:38 यह भारत सरकार के एम एच आर डी के आई सी टी के माध्यम से राष्ट्रीय साक्षरता मिशन द्वारा समर्थित है।
10:45 इस मिशन पर अधिक जानकरी http://spoken-tutorial.org\NMEICT-Intro पर उपलब्ध है।
10:52 आय आय टी बॉम्बे से मैं श्रुति आर्य आपसे विदा लेती हूँ। हमसे जुड़ने के लिए धन्यवाद।

Contributors and Content Editors

Pratik kamble, Shruti arya