1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] नैट Hardison: प्रोग्रामिंग में, एक पुस्तकालय का एक संग्रह है 2 00:00:09,470 --> 00:00:11,380 संबंधित prewritten कोड. 3 00:00:11,380 --> 00:00:14,350 पुस्तकालय और हम कैसे, प्रोग्रामर, के रूप में आम शेयर 4 00:00:14,350 --> 00:00:16,930 हम एक दूसरे के साथ विभिन्न कार्यक्रमों के साथ उपयोगी, कोड 5 00:00:16,930 --> 00:00:19,470 लिखते हैं, और यहां तक ​​कि विभिन्न प्रक्रियाओं पर चलने के साथ 6 00:00:19,470 --> 00:00:21,380 अपने कंप्यूटर पर एक ही समय. 7 00:00:21,380 --> 00:00:23,000 >> चलो एक बिट का पता लगाने. 8 00:00:23,000 --> 00:00:25,070 अधिक आम कार्य करता है कि आप शायद की तरह 9 00:00:25,070 --> 00:00:27,500 का उपयोग किया गया printf समारोह है. 10 00:00:27,500 --> 00:00:29,820 अब, printf कुछ जादू समारोह में कहा कि गया है नहीं है 11 00:00:29,820 --> 00:00:31,670 कंप्यूटर में हार्ड कोडित - 12 00:00:31,670 --> 00:00:34,320 बल्कि, यह सी मानक पुस्तकालय का हिस्सा है, जो कर रहे हैं 13 00:00:34,320 --> 00:00:36,080 कार्यों का एक संग्रह है कि के साथ आता है 14 00:00:36,080 --> 00:00:38,050 सी प्रोग्रामिंग भाषा. 15 00:00:38,050 --> 00:00:40,920 चूंकि printf कंप्यूटर में नहीं बनाया गया है, कि इसका मतलब है कि 16 00:00:40,920 --> 00:00:43,520 वहाँ कुछ प्रोग्रामर जो वास्तव में चला गया था और लिखा 17 00:00:43,520 --> 00:00:46,310 printf समारोह और यह मानक के बाकी के साथ बंडल 18 00:00:46,310 --> 00:00:48,880 पुस्तकालयों इतना है कि भविष्य प्रोग्रामर के लिए नहीं होता 19 00:00:48,880 --> 00:00:50,310 प्रयास नकल. 20 00:00:50,310 --> 00:00:52,620 और हमें यकीन है कि आभारी हूँ कि यह मामला है, क्योंकि की जाँच करें 21 00:00:52,620 --> 00:00:54,710 यह वास्तव में कितना कोड printf को लागू करने के लिए बाहर ले जाता है. 22 00:00:59,590 --> 00:01:02,860 >> सी मानक पुस्तकालयों, जिनमें से printf एक हिस्सा है 23 00:01:02,860 --> 00:01:04,480 आप एक सबसे महत्वपूर्ण उपकरण के 24 00:01:04,480 --> 00:01:06,770 CS50 से निपटने में है. 25 00:01:06,770 --> 00:01:08,780 इनपुट, आउटपुट पुस्तकालय के अलावा जहां 26 00:01:08,780 --> 00:01:11,370 printf रहता है, वहाँ अन्य पुस्तकालयों का एक गुच्छा है कि 27 00:01:11,370 --> 00:01:14,230 आप शायद CS50 के पाठ्यक्रम का उपयोग करेंगे. 28 00:01:14,230 --> 00:01:16,730 उदाहरण के लिए, स्ट्रिंग पुस्तकालय कार्य किया है 29 00:01:16,730 --> 00:01:20,960 सी तार की तुलना करने के लिए, उनकी लंबाई मिलता है, और उन्हें जोड़ना. 30 00:01:20,960 --> 00:01:22,410 और गणित पुस्तकालय आप उपयोगी देता है 31 00:01:22,410 --> 00:01:25,062 pi और ई जैसे स्थिरांक,. 32 00:01:25,062 --> 00:01:27,650 अब, अन्य प्रोग्रामिंग की मानक पुस्तकालयों की तुलना में 33 00:01:27,650 --> 00:01:31,190 भाषा, सी मानक पुस्तकालयों वास्तव में छोटे हैं, 34 00:01:31,190 --> 00:01:34,060 लेकिन वे अभी भी सामान की एक महत्वपूर्ण राशि है. 35 00:01:34,060 --> 00:01:36,370 और कहा कि कहने के लिए नहीं है कि मानक पुस्तकालयों 36 00:01:36,370 --> 00:01:39,020 केवल सी पुस्तकालयों, वहाँ कई वहाँ बाहर अधिक कर रहे हैं 37 00:01:39,020 --> 00:01:42,460 दुनिया के लिए आप, CS50 लाइब्रेरी का उपयोग करने के लिए, 38 00:01:42,460 --> 00:01:45,150 एन्क्रिप्शन और डिक्रिप्शन के साथ मानचित्रकारी पुस्तकालयों 39 00:01:45,150 --> 00:01:48,000 कार्यों के कार्यों के साथ, पुस्तकालयों के लिए सांकेतिक शब्दों में बदलना और 40 00:01:48,000 --> 00:01:50,970 वापस वीडियो खेलने के लिए, और इतने पर. 41 00:01:50,970 --> 00:01:53,190 >> यह हमें एक महत्वपूर्ण तरफ लाता है. 42 00:01:53,190 --> 00:01:55,500 इंजीनियरिंग के आवश्यक कौशल जानने है 43 00:01:55,500 --> 00:01:58,090 उपकरण अपने toolbox में उपलब्ध इतनी है कि आप उपयोग कर सकते हैं 44 00:01:58,090 --> 00:01:59,850 उन्हें और जब तक पहिया बदलते से बचने 45 00:01:59,850 --> 00:02:01,510 आप ऐसा करने के लिए है. 46 00:02:01,510 --> 00:02:04,120 प्रोग्रामर के रूप में, पुस्तकालयों एक सबसे महत्वपूर्ण में से एक हैं 47 00:02:04,120 --> 00:02:05,520 हमारे पास उपकरण. 48 00:02:05,520 --> 00:02:08,520 जब आप अपने आप एक काम है कि थकाऊ या लगता है का सामना करना पड़ 49 00:02:08,520 --> 00:02:11,940 सामान्य, आप एक सी स्ट्रिंग की लंबाई को खोजने की तरह, 50 00:02:11,940 --> 00:02:14,020 अपने आप से पूछना चाहिए अगर यह मामला हो सकता है कि 51 00:02:14,020 --> 00:02:16,520 किसी को पहले से ही एक ही बात है पहले किया. 52 00:02:16,520 --> 00:02:17,760 संभावना है कि आप कुछ मिल सकता है 53 00:02:17,760 --> 00:02:20,110 एक पुस्तकालय के भीतर मदद करते हैं. 54 00:02:20,110 --> 00:02:23,260 >> तो तकनीकी शब्दों में, एक पुस्तकालय एक बाइनरी फ़ाइल है कि 55 00:02:23,260 --> 00:02:26,210 एक साथ का एक संग्रह को जोड़ने के द्वारा उत्पादित किया गया है 56 00:02:26,210 --> 00:02:28,880 आप वस्तु एक उपकरण का उपयोग फ़ाइलों को कहा जाता है, 57 00:02:28,880 --> 00:02:31,010 यह, linker अनुमान लगाया. 58 00:02:31,010 --> 00:02:33,830 वस्तु फ़ाइलें उन ओ फ़ाइलें कि तुम जब 59 00:02:33,830 --> 00:02:35,860 सी स्रोत कोड संकलन. 60 00:02:35,860 --> 00:02:38,420 जब प्रोग्रामर पुस्तकालयों लिखते हैं, वे आम तौर पर 61 00:02:38,420 --> 00:02:41,560 फाइलों के दो प्रकार के में अपने सी कोड अलग: 62 00:02:41,560 --> 00:02:44,880 हेडर फाइल और कार्यान्वयन फ़ाइलें. 63 00:02:44,880 --> 00:02:49,820 सम्मेलन द्वारा एक हैडर फ़ाइल ज. फ़ाइल एक्सटेंशन दिया जाता है, 64 00:02:49,820 --> 00:02:51,940 और यह कोड है कि पुस्तकालय वाणी शामिल 65 00:02:51,940 --> 00:02:55,120 संसाधनों है कि आप के लिए उपलब्ध का उपयोग करने के लिए कर रहे हैं. 66 00:02:55,120 --> 00:02:58,830 इन संसाधनों कार्य, चर, structs में शामिल हैं, 67 00:02:58,830 --> 00:03:01,980 परिभाषाओं का प्रकार, और इतने पर, और एक साथ, वे कर रहे हैं 68 00:03:01,980 --> 00:03:04,620 सामान्यतः इंटरफ़ेस के रूप में करने के लिए भेजा. 69 00:03:04,620 --> 00:03:07,280 वास्तव में, यदि आप कभी भी सोच रहे हैं कि क्या एक पुस्तकालय में है, 70 00:03:07,280 --> 00:03:09,580 हेडर फाइल देखने के लिए जगह है. 71 00:03:09,580 --> 00:03:14,030 >> उदाहरण के लिए, आप usr खींच कर सकते हैं / शामिल / stdio.h और जाँच करें 72 00:03:14,030 --> 00:03:16,210 बाहर सब कुछ आप कभी के बारे में जानना चाहता था 73 00:03:16,210 --> 00:03:18,570 मानक कब पुस्तकालय. 74 00:03:18,570 --> 00:03:20,610 यहाँ में सामान की एक बहुत है, और यह एक बिट ले जा सकते हैं 75 00:03:20,610 --> 00:03:22,420 समय के माध्यम से उतारा. 76 00:03:22,420 --> 00:03:25,840 हालांकि, गूगल और manpages साथ साथ, यह है 77 00:03:25,840 --> 00:03:28,060 जगह जाने के लिए अगर आप सोच रहे हैं मानक कैसे मैं / हे 78 00:03:28,060 --> 00:03:30,460 पुस्तकालय कार्यों के काम करते हैं. 79 00:03:30,460 --> 00:03:33,910 तो एक कुंजी बात यहाँ ध्यान दें, हालांकि यह है, कि हेडर फाइल 80 00:03:33,910 --> 00:03:36,740 आम तौर पर समारोह परिभाषा शामिल नहीं - 81 00:03:36,740 --> 00:03:40,020 कि है, वास्तविक समारोह implementations. 82 00:03:40,020 --> 00:03:42,470 यह एक महत्वपूर्ण कंप्यूटर विज्ञान का एक उदाहरण है 83 00:03:42,470 --> 00:03:45,700 सिद्धांत जानकारी छुपा कहा जाता है, भी कम करने के लिए भेजा 84 00:03:45,700 --> 00:03:48,960 encapsulation के रूप में कई बार. 85 00:03:48,960 --> 00:03:52,630 >> ग्राहक या एक पुस्तकालय के उपयोगकर्ता के रूप में, आप करने की जरूरत नहीं 86 00:03:52,630 --> 00:03:54,230 में पुस्तकालय के internals के बारे में जानते हैं 87 00:03:54,230 --> 00:03:55,380 आदेश के लिए इसका इस्तेमाल. 88 00:03:55,380 --> 00:03:57,800 Printf सिर्फ एक बिट पहले देख याद है? 89 00:03:57,800 --> 00:04:00,275 अगर आप कभी भी वास्तविक कोड पहले देखा है? 90 00:04:00,275 --> 00:04:02,535 खैर, मुझे लगता है कि आप नहीं है, भले ही आप कर सकते हैं 91 00:04:02,535 --> 00:04:05,090 समय की printf टन का इस्तेमाल किया है. 92 00:04:05,090 --> 00:04:08,110 आप सभी को पता था समारोह घोषणा मौजूद था 93 00:04:08,110 --> 00:04:10,940 stdio.h हेडर फाइल में. 94 00:04:10,940 --> 00:04:14,010 वैसे भी, अच्छी जानकारी छुपा के लाभ यह है कि आप 95 00:04:14,010 --> 00:04:16,820 और कार्यक्रमों आप लिखने में किसी भी बदलाव से अछूता 96 00:04:16,820 --> 00:04:20,209 पुस्तकालय कार्यों के कार्यान्वयन के कोड. 97 00:04:20,209 --> 00:04:22,880 Printf परिवर्तन के कार्यान्वयन, तुम नहीं है 98 00:04:22,880 --> 00:04:26,310 जाओ और अपने प्रोग्राम है कि printf का उपयोग करें सब बदल जाते हैं. 99 00:04:26,310 --> 00:04:28,450 >> तो जहां कार्यान्वयन जाना है? 100 00:04:28,450 --> 00:04:31,020 ठीक है, फिर से, सम्मेलन द्वारा कार्यान्वयन में चला जाता है 101 00:04:31,020 --> 00:04:34,310 ग फ़ाइल एक्सटेंशन के साथ फ़ाइल. 102 00:04:34,310 --> 00:04:36,820 आमतौर पर, हेडर फाइल और कार्यान्वयन फ़ाइलें हाथ जाना 103 00:04:36,820 --> 00:04:39,380 हाथ में है, इसलिए अगर आप नए स्ट्रिंग का एक गुच्छा की घोषणा की है 104 00:04:39,380 --> 00:04:42,950 mystring.h में कार्य करता है, तो आप सभी को परिभाषित करेंगे 105 00:04:42,950 --> 00:04:46,960 mystring में उन कार्यों. 106 00:04:46,960 --> 00:04:49,230 तो फिर शीर्ष लेख और कार्यान्वयन फ़ाइलें हैं तो 107 00:04:49,230 --> 00:04:52,230 संकलित वस्तु फ़ाइलें है कि तब से जुड़े हुए हैं बनाने 108 00:04:52,230 --> 00:04:55,360 साथ बाइनरी पुस्तकालय फ़ाइल का उत्पादन करने के लिए. 109 00:04:55,360 --> 00:04:58,520 पुस्तकालय लेखक तो द्विपदीय फाइल के साथ जहाज जाएगा 110 00:04:58,520 --> 00:05:00,720 हैडर प्रोग्रामर जो उपयोग करने के लिए करना चाहते हैं के लिए फाइलों के साथ 111 00:05:00,720 --> 00:05:02,280 पुस्तकालय. 112 00:05:02,280 --> 00:05:04,640 इस बिंदु पर नहीं कर रहे हैं, ग. कार्यान्वयन फ़ाइलें 113 00:05:04,640 --> 00:05:07,840 जरूरत है, को छोड़कर खरोंच से पुस्तकालय recompile करने के लिए है, तो 114 00:05:07,840 --> 00:05:10,270 वे अक्सर बाहर छोड़ रहे हैं. 115 00:05:10,270 --> 00:05:13,670 >> सी पुस्तकालय का उपयोग करने के लिए, आप दो बातें करते हैं. 116 00:05:13,670 --> 00:05:16,890 सबसे पहले, आप # पुस्तकालय के हेडर फाइल और को शामिल करना चाहिए 117 00:05:16,890 --> 00:05:18,700 स्रोत कोड फ़ाइल जहाँ आप उपयोग करना चाहते हैं 118 00:05:18,700 --> 00:05:20,530 पुस्तकालय कोड. 119 00:05:20,530 --> 00:05:23,200 यह संकलक की घोषणाओं के सभी बताते हैं 120 00:05:23,200 --> 00:05:26,890 कार्य, चर, structs, वगैरह, में मौजूद 121 00:05:26,890 --> 00:05:30,510 हेडर फाइल ताकि संकलक एक बीमा, कर सकते हैं कि 122 00:05:30,510 --> 00:05:33,280 आप उचित तरीके से पुस्तकालय संसाधनों का उपयोग कर रहे हैं, 123 00:05:33,280 --> 00:05:37,120 और दो, उपयुक्त विधानसभा कोड उत्पन्न. 124 00:05:37,120 --> 00:05:38,910 जहां पुस्तकालय हेडर फाइल कर रहे हैं पर निर्भर करता है 125 00:05:38,910 --> 00:05:42,720 स्थित है, # शामिल वाक्यविन्यास बदलता है. 126 00:05:42,720 --> 00:05:44,880 यदि हेडर फाइल प्रणाली में स्थित हैं 127 00:05:44,880 --> 00:05:46,690 डिफ़ॉल्ट निर्देशिका में शामिल हैं - 128 00:05:46,690 --> 00:05:48,780 आम तौर पर, usr/include-- 129 00:05:48,780 --> 00:05:52,200 तो कोण कोष्ठक वाक्यविन्यास प्रयोग किया जाता है # के रूप में शामिल 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 हालांकि, अगर हेडर फाइल ही में स्थित हैं 132 00:05:59,540 --> 00:06:02,960 निर्देशिका अपने खुद के कोड के रूप में, दोहरे उद्धरण वाक्यविन्यास 133 00:06:02,960 --> 00:06:04,870 प्रयोग किया जाता है, के रूप में "# mylib.h" शामिल हैं. 134 00:06:08,630 --> 00:06:11,220 >> दूसरी बात तुम्हें क्या करना है द्विआधारी में लिंक 135 00:06:11,220 --> 00:06:13,760 पुस्तकालय फ़ाइल जब आप अपने कोड संकलन. 136 00:06:13,760 --> 00:06:15,810 यह एक सुपर महत्वपूर्ण कदम है. 137 00:06:15,810 --> 00:06:17,540 कैसे शीर्ष लेख के बारे में हमारे पहले चर्चा याद 138 00:06:17,540 --> 00:06:20,200 फ़ाइलें कार्यान्वयन कोड शामिल नहीं है? 139 00:06:20,200 --> 00:06:22,200 यदि आप इस चरण को भूल जाते हैं, तो आप त्रुटियों के बारे में मिल जाएगा 140 00:06:22,200 --> 00:06:24,990 अपरिभाषित प्रतीक अपने कोड में संदर्भित. 141 00:06:24,990 --> 00:06:29,580 इस को हल करने के लिए उपयोग-l झंडा तुरंत बाद 142 00:06:29,580 --> 00:06:32,320 पुस्तकालय के नाम से एक अंतरिक्ष के बिना. 143 00:06:32,320 --> 00:06:35,410 उपकरण, सी मानक सहित कई सिस्टम पर, 144 00:06:35,410 --> 00:06:38,350 पुस्तकालय आप के लिए स्वचालित रूप से जुड़े हुए हैं. 145 00:06:38,350 --> 00:06:41,700 हालांकि, गणित पुस्तकालय कभी कभी अलग बंडल है 146 00:06:41,700 --> 00:06:44,600 और lm के साथ जुड़े होने की जरूरत हो सकती है. 147 00:06:44,600 --> 00:06:47,760 उपकरण पर, हम इस के आप के लिए ध्यान रखना है, और हम भी 148 00:06:47,760 --> 00:06:52,170 lcs50 साथ CS50 पुस्तकालय लिंक. 149 00:06:52,170 --> 00:06:54,540 तुम जब आप रन बनाने के उपकरण पर यह सब देख सकते हैं. 150 00:06:57,620 --> 00:06:59,130 >> अब आप ज्ञान आप प्रयोग की जरूरत होनी चाहिए 151 00:06:59,130 --> 00:07:02,150 सी. में पुस्तकालयों को खोजने में मज़ा लें. 152 00:07:02,150 --> 00:07:05,880 मेरा नाम नैट Hardison है, और इस CS50 है.