0:00
गैस अगर आप लोग को याद हो तो मैंने function pointers के बारे में पिछले वीडियो में discuss किया था जहां मैंने आप लोगों को बताया था कि जो function pointers होते हैं वो एक pointer का प्रकार होते हैं और किस तरह pointers जो होते हैं वो useful होते हैं function pointers का क्या इस्तेमाल है इस वीडियो में मैं आप लोगों को �
0:30
लेकिन जो function pointers होते हैं, वो function की तरफ point करते हैं, और function क्या होता है
0:35
function कुछ नहीं, बस instructions होते हैं, तो हमने यह कहा था
0:40
कि जो हमारा pointer होता है, देखो point करने का क्या मतलब होता है, point करने का मतलब ऐसा नहीं है
0:45
कि एक इंसान खड़ा हुआ है, और वो जो है उंगली लगा रहा है किसी चीज की तरब point कर रहा है ऐस�
0:50
ऐसा नहीं है यहाँ पर क्या होता है point का मतलब होता है address store कर लिय�
0:55
तो यहाँ पर pointer कुछ नहीं है एक variable है C programming मे�
0:59
जिसमें कुछ address stored है और वो जो address है वो address है किसक�
1:04
वो किसी मालो यह integer है चार वाइट्स ठीक है छेस के अंदर है वैल्यू और यहां पर इसका भी कुछ एड्रेस है ठीक है और हुआ क्या कि यह ज�
1:17
एड्रेस है यह एड्रेस से मैं सॉरी 00 x 00 x 1 ff ठीक है और यह अब इसको पॉइंट कर रहा है क्यों क्योंकि इसक�
1:26
address है, यहाँ पर address यहाँ पर नीचे लिख रहा हूँ, और यह value है, ठीक है, डब्बे के अंदर value है, और नीचे address लिख रहा हूँ, और तो मैंने यहाँ पर लिख दिया इसका address, अब इसका भी कोई address होगा, ठीक है, अब क्या है कि एक variable, अगर दूसरे variable का address अपने अंदर रख �
1:56
जो पॉइंट करता है वह क्या करता है इंस्ट्रक्शन को पॉइंट करता है कि यहां से जहां से वह जो फंक्शन स्टार्ट हु�
2:02
है वह वाला जो इंस्ट्रक्शन है उसका एड्रेस ले लेता है तो यह कुछ नहीं यहां पर जो हमारा जो मेमोरी लोग इश�
2:08
आप लोगों को दिखाया था code, global static variables, stack और heap
2:13
यहाँ बना मैंने क्या किया कि जो code के अंदर जहाँ पर वो particular instruction था
2:17
उसके address को पकड़के store कर लिया मैंने. और जब मैंने store किया, तो इसका मतलब यह हो गया कि जो मेरा pointer है
2:24
वो point कर रहा है इस instruction को, यानि कि इस function को. तो अब इसका use क्या है, हमने ये चीज़ तो देखी, हमने syntax भी देखा था पिछले वीडियो में, लेकिन इसका use क्या है, तो इसका use है callback functions, ये callback functions को implement करने के काम आता है, तो function pointers are useful to implement callback functions, अब ये सब बताऊंगा अभी इसी वीडियो में, आप लोग ध्यान से सुनना
2:45
अब क्या होता है normal pointers जिस तरह हमारे क्या करते है�
2:49
हम memory को allocate और deallocate करते थे यादे malloc, realloc और calloc
2:54
मैंने आप लोगों को detail में बताया हुआ है तो यहाँ बर क्या होता ह�
2:58
आप लोग इन pointer का इस्तेमाल नहीं कर सकते we do not allocate or deallocate
3:03
memory using function pointers तो ये बात आप लोग को समझ में आनी चाहि�
3:07
यूकि ये क्या कर रहे हैं ये function को point कर रहे हैं किसी data को point नहीं कर रहे है�
3:11
ये instruction set को point कर रहे हैं तो इसलिए आप लोग यहाँ पर memory का allocation नहीं कर सकत�
3:16
तो ये चीज़ एकदम basic है मतलब समझ में आती है जैसे कहते हैं देशी भाषा में एकदम आगे बढ़ते हैं callback function
3:22
callback function कुछ नहीं है एक अजीब सा बड़ा सा डराउना सा नाम रख दिया है callback
3:28
callback call back hello
4:01
अब क्या होता है कि एक function है उस function को अगर आपने function pointer दे दिय�
4:05
यानि कि आपने एक function को एक function दे दिया और एक function क�
4:09
एक दूसरा function कैसे दिया उसका pointer पास कर दिया तो ये मतलब होता ह�
4:13
बस usage सिर्फ इतना सा है कि आप एक function को दूसरा function कैसे दोग�
4:19
एक बार आप ये करने में सफल हो गए तो क्या होगा कि आप उसको call कर सकते हो जब आपका मन चाह�
4:24
या फिर आप कुछ भी instructions लिख सकते हो उसके बाद उसको call करते हो मैं दिखाऊँगा सब कुछ code मे�
4:28
बस अभी थोड़ी थी theory देख लेते हैं और फिर चलते हैं visual studio code में बहुत जल्द�
4:32
function pointers are used to pass a function to a function यह मैंने बता दिया आपक�
4:36
एक function है funk1 एक दूसरा function है funk2 funk1 कुछ काम करेग�
4:41
funk2 को call करेगा फिर कुछ और काम करेगा यानि कि बीच में एक funk2 को call करेग�
4:45
और funk2 इसको as an argument अगर मुझे देना है function1 को, तब मैं क्या कर सकता हूँ
4:50
function pointer पकड़ा सकता हूँ, किसका, function2 का, एक ऐसा function pointer जो function2 को point कर रहा है
4:56
वो दे सकता हूँ मैं, किसको, इसको दे सकता हूँ, function1 को, और उसके बाद ये अपनी मरजी से call कर लेगा उसको
5:03
तो ये होता है callback function, this past function can then be called again
5:07
ये वापस से फिर call किया जा सकता है enhance the name callback function ये सब मैंने अभी आप लोगों को एक डिटेल में बता दिय�
5:12
कि ये जो function है इसको फिर बाद में call किया जा सकता है और इसलि�
5:16
नाम पड़ा callback function this provides programmer to write less code and to do more stuff
5:22
ठीक है अब क्या होगा कि आप अगर मान लो एक function है आपका
5:26
आप वो run ना करने की बजाए कुछ और run करना चाहते हो, मान लो कि एक greet नाम का function है
5:31
मैं आपको लिख कर दिखाओंगा, तो क्या होगा कि आप variable functions पास कर देते हो, आज आपने func2 कर दिया
5:35
आपकी मरजी हुई तो funk 3 pass कर दिया आपने और funk 2, funk 3 लगबग-लगबग similar है�
5:41
और आपने already लिखे हुए हैं लेकिन आप कभी funk 1 pass, funk 2 pass करोग�
5:45
कभी funk 3 pass करोगे तो उसके साथ जाए funk 1 की functionality को modify कर सकते ह�
5:49
कम code को लिखकर ठीक है तो इस चीज़ को मैं आपको समझा देता हू�
5:53
मान लो funk1 में 1053 lines है ठीक है और इसमें स�
5:59
एक line number 551 पर मेरी बात को ध्यान से सुनना 1053 line है funk1 के अंदर औ�
6:05
551st line पर मेरे पास एक code लिखा हुआ है जहाँ पर मैं इसको जो भी function मिलता है उसको एक call कर देता ह�
6:21
गुड मॉर्निंग प्रिंट करता अब मानो आपको एक और फंक्शन चाहिए जो कि क्या करेगा सेम काम करेगा एक हजात रेपन लाइ�
6:27
लेकिन इस बार वो hello की जगा good morning ले तो आप क्या वापस से एक दूसरा function लिखोग�
6:32
1053 lines का नहीं आप क्या करोगे callback function के तौर पर दे दोग�
6:36
इसको function 1 को और सिर्फ func2 func3 के अंदर आप ये लिखोगे की func3
6:42
func2 के अंदर आप लिख दोगे hello, जो hello print करें, और इसके अंदर good morning print करें, त�
6:47
इतने चोटे-चोटे दो function आपने लिख दिये, callback functions, और यह आप फिर इनको पकड़�
6:51
दोगे, और आराम से आप अपने काम कर सकते हो, तो, अभी हमने theory में देखी है�
6:56
notes step by step visual studio code coding callback functions implement use function pointers so let go to visual studio code now So guys Visual Studio Code Dutch
7:17
callback function और function pointers के बारे में लेकिन उससे भी पहले अगर आप लोगों ने यह C programming
7:23
जो playlist access नहीं किया तो इसको कर ले access bookmark कर ले save कर ले किसी भी तरह मैं यह बार-बार इसलि�
7:28
बना रहा हूं जो कमेंट में पास बार-बार आते हैं इस बात को पूछते हुए कि क्या मैंने फुल कोर्स बनाया कि नही�
7:33
इसलिए मेरे लिए इंपॉर्टेंट हो जाता है आप लोगों को बताना कि मैंने यह जो कोर्स है वह बना रखा है स्टार्टिं�
7:38
तक तक आप लोग जो है स्टेप बाइ स्टेप इन सब चीजों को सीख पाए आ जाता हूं अपने वीडियो स्टूडियो को उठ में वापस से औ�
7:44
यहाँ पर इस बार मैं क्या करूंगा एक नई फाइल बनाऊंगा ऑलरेडी 72 वीडियोस हैं तो मैं यहाँ पर tutorial73.c के नाम से फाइल बनाऊंग�
7:51
और यहाँ पर मैं user snippet अपना लिख दूँगा mean2 और मैंने यहाँ पर stdio.h और stdlib.h लिखा ह�
8:03
तो सबसे वहाँ एक function लिखना चाहूँगा यहाँ पर और वह simple सा function होगा और मैं बिल्कुल time नहीं लोगा उसको लिखने मे�
8:10
sum int a int b return a plus b as simple as that एकदम clear लिखता हूँ एकदम clear कर दिया एकदम एक दूसरों लिखता हू�
8:25
मैं लिखता हूँ greet hello and execute ठीक है यह function मैं लिखूंगा और इसी के साथ साथ मैं एक और function लिखूंगा अभी greet good morning and execute ठीक है अभी greet hello and execute लिख देता हूँ यह क्या करेगा यह लेगा कुछ arguments क्या लेगा य�
8:47
मैं कहूँगा कि यह एक function pointer लेगा fptr ठीक है और एक ऐसा function pointer लेग�
8:56
जो की एक ऐसा function pointer लेगा जो की int और int as an input लेता ह�
9:04
और int return करता है एक ऐसा function का pointer लेगा यानि की वो pointer आप इसको pass कराएंग�
9:09
जो की एक integer return करता है और दो integers input में लेता ह�
9:13
जैसे हमारा सम फंक्शन है बिल्कुल वैसे ही ठीक है तो greet, hello and execute क्या करता ह�
9:17
hello पहले greet करता है user को और उसके बाद फंक्शन को execute कर देता ह�
9:21
जो भी इसको दिया गया है मैं यहाँ पर simplify करके दिखा रहा हूँ चीजों क�
9:25
और real life में जैसे कि आप लोग जानते हैं जो आप लोग इससे ज्यादा कंप्लीगेट चीजें मिलेंगे देखने को ती सम आफ ए एंड ब�
9:35
इस ठीक है और मैं काम करता हूं यहां पर कुछ नंबर देता हूं फाइव और सेवन देता हूं और यहां पर एक प्रें�
9:42
लगाए हेलो वर्ड भी लिखी देता हूं ठीक है हेलो यूजर ठीक है और यहां पर पर सेंट डी हटा देता हूं कॉम भ�
9:49
हटा देता हूं ठीक है मैं पहले हेलो कर रहा हूं यूजर को एक न्यू लाइन करेक्टर दे रहा हूं और उसके बा�
9:55
कर रहा हूं, FPTR को call कर दे रहा हूं, as simple as that, simply FPTR को call करने के बाद
10:01
मैं यहाँ पर क्या कर रहा हूं, 5 or 7 इसको दे दे रहा हूं, ठीक है, और यह क्योंकि एक integer return कर रहा है
10:06
इसलिए pulse index d का एक अच्छा स्थान ले लेगा यह, FPTR दो input लेता है, integers, 5 और 7 दिये मैंने
10:13
और रिटर्न करता है कि टीचर तो यहां पर मैंने सिर्फ एक फंक्शन पॉइंटर बनाया है यह मैंने जिससे रहे हैं लिखता ह�
10:20
यहां पर उसी तरह मैंने यह लिखा है इसका मतलब कि एपिटी एक फंक्शन पॉइंटर यह ब्रैकेट क्यों लगा है मैंने य�
10:25
लगाएं यह नहीं लगाऊंगा तो यह फंक्शन की डिक्लेरेशन हो जाएगी जो कि गलत हो जाएगा तो फंक्शन पॉइंट�
10:30
थोड़ा सा इस तरह का सिंटेक्स है आप लोग इसको थोड़ा ध्यान रखना है और इसके बाद बीट गुड मॉर्निंग एं�
10:36
execute में क prata नियुक्त हुआ है मैं एप्ली सेम चीज लिख दूंगा और यहां पर गुड बॉनिंग यूजर लिख दूंग�
10:56
जाऊंगा एफटी यार या फिर एफ या सिर्फ पीटी आड़ भी लिख सकता हूं उसका नाम में और यह फंक्शन पॉइंटर है उ�
11:04
फंक्शन का जो कि दो इंटीजर लेकर एक इंटीजर रिटर्न करता है ठीक है अब मैं क्या कर रहा हूं मैं कह रहा हूं कि ज�
11:10
टीटी आर है वह सम हो जाए अब एंपरसेंट लगा भी सकता हूं नहीं भी लगा सकता हूं मैं यह सिंटेक्स दोनों ही सही ह�
11:15
यह तो आप एंपरसेंट लगाएं तब भी फंक्शन को पॉइंट कर जाए यह नहीं लगाओ तब भी फंक्शन को पॉइंट कर sadece त�
11:21
तो अब यहां पर मैं करूंगा कि मान लो मैंने यहां पर किया एंड ग्रीट एंड ग्रीट हेलो एंड एक्सडीट गुड़ बारिं�
11:33
एक्सेक्यूट कर देता हूं मैंने यहां पर इसको भी इस तरह देना पड़ेगा एक इंपुट में एक फंक्शन पॉइंटर देना पड़ेग�
11:38
और अब जो है मेरा यह जो एरर आ रहा था वह नहीं आएगा तो आप देख सकते हैं यहां पर मुझे कोई भी एरर देखने क�
12:03
थोड़ा टर्मिनल को ऊपर लेकर आता हूँ आप लोग को दिखे ता कि तो आप लोग देखो यहां पर से गुड़ मॉर्निंग यूजर और यूजर almost
12:09
आए है मुझे नहीं आ लो मुझे देखना पड़ेगा क्या इश्यों है गुड मॉर्निंग ओमने याद दो बार यूजर लिख दिय�
12:14
वेस तो दो बारी तो आएगा चलो बढ़िया गुड़ मॉर्निंग यूजर आएगा इस बार कंपाइल करके रन किया तो समय फाइव एं�
12:21
वेनेस ट्वेल्व और वाय एनी चैन्स अगर मैं यहां पर इसको गुड़ मोडी गुड़ मॉर्निंग एड एग्जिक्यूट की जगह ग्रीट हेल�
12:28
एंड एक्सीट करूं अ अच्छा ठीक है और मैं इसको रन करूं तो यह हेलो के बाद मुझे दिखा देगा वह इसने मुझे पहले गुड़ मॉर्निंग क�
12:40
बाद दिखाया था तो मैं आशा करता हूं कि एकदम क्लियर हो गया आप लोग को अब मैं आप लोगों को यहां पर ए�
12:45
टास्क देना चाहता हूं और मैं आपको टास्क की देना चाहता हूं कि आप लोग को ग्रीट गुड इवनिंग और यहां प�
12:53
ग्रीट गुड आफ्टरनून करके दो फंक्शनевर ने जो कि यूजर से दो नंबर का एवरेज लेंगे दिए तो मैं चाहता हूं क�
12:59
कमेंट में पोस्ट करें सब लोग आंसर और देखता हूं कितने लोग इस चैलेंज को लेकर और आंसर पोस्ट करते हैं कमेंट मे�
13:06
तो मैं आशा करता हूं एकदम क्लियर हो गया का function pointer callback functions और कभी भी आप लोग को यह दिखेग�
13:12
अगर तो आप डरेंगे नहीं इस चीज से, एक बार और बताना चाहूँगा कि अगर मैं कुछ इस तरह लिख देता
13:16
यह brackets लगाना बहुत जरूरी है, यह मैं आपको emphasize करना चाहूँ, तो यह इसको ऐसा लगेगा कि यह एक function है
13:22
ठीक है इसको लगेगा एक function है PTR नाम का जो की दो inputs
13:26
लेता है ठीक है और return करता है क्या एक pointer to integer तो वो गलत हो जाएगा ठीक ह�
13:32
तो इसलिए मैं इसको मिटा देता हूँ और आपको इस तरह से brackets लगाने ह�
13:36
जब भी ये जो parenthesis ने लगाने है जब भी आप function pointers की बात कर रहे हैं ठीक ह�
13:41
तो मैं आशा करता हूँ clear हो गई होगी चीज़े आप लोगों ने playlist पे access कर लियोग�
13:45
इस वीडियो को like जरूर से कर दीजे और अपने दोस्तों के साथ इस playlist को जरूर से share कीज़�
13:49
क्योंकि काफी helpful रही कि ये playlist उन लोगों के लिए मैं चाहता हू�
13:53
जादा से यादा लोगों तक पहुँचे और जादा से यादा लोगों तक पहुँचे कि तो मैं आने वाल�
13:57
time में data structure, C++ और भी काफी चीज़े pending है उन सब को complete करूँग�
14:01
जल्दी जल्दी so guys अभी के लिए इस वीडियो में इतना ही thank you so much guys for watching
14:06
this video and I will see you next time