[Powered by Google Translate] नैट Hardison: प्रोग्रामिंग में, एक पुस्तकालय का एक संग्रह है
संबंधित prewritten कोड.
पुस्तकालय और हम कैसे, प्रोग्रामर, के रूप में आम शेयर
हम एक दूसरे के साथ विभिन्न कार्यक्रमों के साथ उपयोगी, कोड
लिखते हैं, और यहां तक ​​कि विभिन्न प्रक्रियाओं पर चलने के साथ
अपने कंप्यूटर पर एक ही समय.
>> चलो एक बिट का पता लगाने.
अधिक आम कार्य करता है कि आप शायद की तरह
का उपयोग किया गया printf समारोह है.
अब, printf कुछ जादू समारोह में कहा कि गया है नहीं है
कंप्यूटर में हार्ड कोडित -
बल्कि, यह सी मानक पुस्तकालय का हिस्सा है, जो कर रहे हैं
कार्यों का एक संग्रह है कि के साथ आता है
सी प्रोग्रामिंग भाषा.
चूंकि printf कंप्यूटर में नहीं बनाया गया है, कि इसका मतलब है कि
वहाँ कुछ प्रोग्रामर जो वास्तव में चला गया था और लिखा
printf समारोह और यह मानक के बाकी के साथ बंडल
पुस्तकालयों इतना है कि भविष्य प्रोग्रामर के लिए नहीं होता
प्रयास नकल.
और हमें यकीन है कि आभारी हूँ कि यह मामला है, क्योंकि की जाँच करें
यह वास्तव में कितना कोड printf को लागू करने के लिए बाहर ले जाता है.
>> सी मानक पुस्तकालयों, जिनमें से printf एक हिस्सा है
आप एक सबसे महत्वपूर्ण उपकरण के
CS50 से निपटने में है.
इनपुट, आउटपुट पुस्तकालय के अलावा जहां
printf रहता है, वहाँ अन्य पुस्तकालयों का एक गुच्छा है कि
आप शायद CS50 के पाठ्यक्रम का उपयोग करेंगे.
उदाहरण के लिए, स्ट्रिंग पुस्तकालय कार्य किया है
सी तार की तुलना करने के लिए, उनकी लंबाई मिलता है, और उन्हें जोड़ना.
और गणित पुस्तकालय आप उपयोगी देता है
pi और ई जैसे स्थिरांक,.
अब, अन्य प्रोग्रामिंग की मानक पुस्तकालयों की तुलना में
भाषा, सी मानक पुस्तकालयों वास्तव में छोटे हैं,
लेकिन वे अभी भी सामान की एक महत्वपूर्ण राशि है.
और कहा कि कहने के लिए नहीं है कि मानक पुस्तकालयों
केवल सी पुस्तकालयों, वहाँ कई वहाँ बाहर अधिक कर रहे हैं
दुनिया के लिए आप, CS50 लाइब्रेरी का उपयोग करने के लिए,
एन्क्रिप्शन और डिक्रिप्शन के साथ मानचित्रकारी पुस्तकालयों
कार्यों के कार्यों के साथ, पुस्तकालयों के लिए सांकेतिक शब्दों में बदलना और
वापस वीडियो खेलने के लिए, और इतने पर.
>> यह हमें एक महत्वपूर्ण तरफ लाता है.
इंजीनियरिंग के आवश्यक कौशल जानने है
उपकरण अपने toolbox में उपलब्ध इतनी है कि आप उपयोग कर सकते हैं
उन्हें और जब तक पहिया बदलते से बचने
आप ऐसा करने के लिए है.
प्रोग्रामर के रूप में, पुस्तकालयों एक सबसे महत्वपूर्ण में से एक हैं
हमारे पास उपकरण.
जब आप अपने आप एक काम है कि थकाऊ या लगता है का सामना करना पड़
सामान्य, आप एक सी स्ट्रिंग की लंबाई को खोजने की तरह,
अपने आप से पूछना चाहिए अगर यह मामला हो सकता है कि
किसी को पहले से ही एक ही बात है पहले किया.
संभावना है कि आप कुछ मिल सकता है
एक पुस्तकालय के भीतर मदद करते हैं.
>> तो तकनीकी शब्दों में, एक पुस्तकालय एक बाइनरी फ़ाइल है कि
एक साथ का एक संग्रह को जोड़ने के द्वारा उत्पादित किया गया है
आप वस्तु एक उपकरण का उपयोग फ़ाइलों को कहा जाता है,
यह, linker अनुमान लगाया.
वस्तु फ़ाइलें उन ओ फ़ाइलें कि तुम जब
सी स्रोत कोड संकलन.
जब प्रोग्रामर पुस्तकालयों लिखते हैं, वे आम तौर पर
फाइलों के दो प्रकार के में अपने सी कोड अलग:
हेडर फाइल और कार्यान्वयन फ़ाइलें.
सम्मेलन द्वारा एक हैडर फ़ाइल ज. फ़ाइल एक्सटेंशन दिया जाता है,
और यह कोड है कि पुस्तकालय वाणी शामिल
संसाधनों है कि आप के लिए उपलब्ध का उपयोग करने के लिए कर रहे हैं.
इन संसाधनों कार्य, चर, structs में शामिल हैं,
परिभाषाओं का प्रकार, और इतने पर, और एक साथ, वे कर रहे हैं
सामान्यतः इंटरफ़ेस के रूप में करने के लिए भेजा.
वास्तव में, यदि आप कभी भी सोच रहे हैं कि क्या एक पुस्तकालय में है,
हेडर फाइल देखने के लिए जगह है.
>> उदाहरण के लिए, आप usr खींच कर सकते हैं / शामिल / stdio.h और जाँच करें
बाहर सब कुछ आप कभी के बारे में जानना चाहता था
मानक कब पुस्तकालय.
यहाँ में सामान की एक बहुत है, और यह एक बिट ले जा सकते हैं
समय के माध्यम से उतारा.
हालांकि, गूगल और manpages साथ साथ, यह है
जगह जाने के लिए अगर आप सोच रहे हैं मानक कैसे मैं / हे
पुस्तकालय कार्यों के काम करते हैं.
तो एक कुंजी बात यहाँ ध्यान दें, हालांकि यह है, कि हेडर फाइल
आम तौर पर समारोह परिभाषा शामिल नहीं -
कि है, वास्तविक समारोह implementations.
यह एक महत्वपूर्ण कंप्यूटर विज्ञान का एक उदाहरण है
सिद्धांत जानकारी छुपा कहा जाता है, भी कम करने के लिए भेजा
encapsulation के रूप में कई बार.
>> ग्राहक या एक पुस्तकालय के उपयोगकर्ता के रूप में, आप करने की जरूरत नहीं
में पुस्तकालय के internals के बारे में जानते हैं
आदेश के लिए इसका इस्तेमाल.
Printf सिर्फ एक बिट पहले देख याद है?
अगर आप कभी भी वास्तविक कोड पहले देखा है?
खैर, मुझे लगता है कि आप नहीं है, भले ही आप कर सकते हैं
समय की printf टन का इस्तेमाल किया है.
आप सभी को पता था समारोह घोषणा मौजूद था
stdio.h हेडर फाइल में.
वैसे भी, अच्छी जानकारी छुपा के लाभ यह है कि आप
और कार्यक्रमों आप लिखने में किसी भी बदलाव से अछूता
पुस्तकालय कार्यों के कार्यान्वयन के कोड.
Printf परिवर्तन के कार्यान्वयन, तुम नहीं है
जाओ और अपने प्रोग्राम है कि printf का उपयोग करें सब बदल जाते हैं.
>> तो जहां कार्यान्वयन जाना है?
ठीक है, फिर से, सम्मेलन द्वारा कार्यान्वयन में चला जाता है
ग फ़ाइल एक्सटेंशन के साथ फ़ाइल.
आमतौर पर, हेडर फाइल और कार्यान्वयन फ़ाइलें हाथ जाना
हाथ में है, इसलिए अगर आप नए स्ट्रिंग का एक गुच्छा की घोषणा की है
mystring.h में कार्य करता है, तो आप सभी को परिभाषित करेंगे
mystring में उन कार्यों.
तो फिर शीर्ष लेख और कार्यान्वयन फ़ाइलें हैं तो
संकलित वस्तु फ़ाइलें है कि तब से जुड़े हुए हैं बनाने
साथ बाइनरी पुस्तकालय फ़ाइल का उत्पादन करने के लिए.
पुस्तकालय लेखक तो द्विपदीय फाइल के साथ जहाज जाएगा
हैडर प्रोग्रामर जो उपयोग करने के लिए करना चाहते हैं के लिए फाइलों के साथ
पुस्तकालय.
इस बिंदु पर नहीं कर रहे हैं, ग. कार्यान्वयन फ़ाइलें
जरूरत है, को छोड़कर खरोंच से पुस्तकालय recompile करने के लिए है, तो
वे अक्सर बाहर छोड़ रहे हैं.
>> सी पुस्तकालय का उपयोग करने के लिए, आप दो बातें करते हैं.
सबसे पहले, आप # पुस्तकालय के हेडर फाइल और को शामिल करना चाहिए
स्रोत कोड फ़ाइल जहाँ आप उपयोग करना चाहते हैं
पुस्तकालय कोड.
यह संकलक की घोषणाओं के सभी बताते हैं
कार्य, चर, structs, वगैरह, में मौजूद
हेडर फाइल ताकि संकलक एक बीमा, कर सकते हैं कि
आप उचित तरीके से पुस्तकालय संसाधनों का उपयोग कर रहे हैं,
और दो, उपयुक्त विधानसभा कोड उत्पन्न.
जहां पुस्तकालय हेडर फाइल कर रहे हैं पर निर्भर करता है
स्थित है, # शामिल वाक्यविन्यास बदलता है.
यदि हेडर फाइल प्रणाली में स्थित हैं
डिफ़ॉल्ट निर्देशिका में शामिल हैं -
आम तौर पर, usr/include--
तो कोण कोष्ठक वाक्यविन्यास प्रयोग किया जाता है # के रूप में शामिल
.
हालांकि, अगर हेडर फाइल ही में स्थित हैं
निर्देशिका अपने खुद के कोड के रूप में, दोहरे उद्धरण वाक्यविन्यास
प्रयोग किया जाता है, के रूप में "# mylib.h" शामिल हैं.
>> दूसरी बात तुम्हें क्या करना है द्विआधारी में लिंक
पुस्तकालय फ़ाइल जब आप अपने कोड संकलन.
यह एक सुपर महत्वपूर्ण कदम है.
कैसे शीर्ष लेख के बारे में हमारे पहले चर्चा याद
फ़ाइलें कार्यान्वयन कोड शामिल नहीं है?
यदि आप इस चरण को भूल जाते हैं, तो आप त्रुटियों के बारे में मिल जाएगा
अपरिभाषित प्रतीक अपने कोड में संदर्भित.
इस को हल करने के लिए उपयोग-l झंडा तुरंत बाद
पुस्तकालय के नाम से एक अंतरिक्ष के बिना.
उपकरण, सी मानक सहित कई सिस्टम पर,
पुस्तकालय आप के लिए स्वचालित रूप से जुड़े हुए हैं.
हालांकि, गणित पुस्तकालय कभी कभी अलग बंडल है
और lm के साथ जुड़े होने की जरूरत हो सकती है.
उपकरण पर, हम इस के आप के लिए ध्यान रखना है, और हम भी
lcs50 साथ CS50 पुस्तकालय लिंक.
तुम जब आप रन बनाने के उपकरण पर यह सब देख सकते हैं.
>> अब आप ज्ञान आप प्रयोग की जरूरत होनी चाहिए
सी. में पुस्तकालयों को खोजने में मज़ा लें.
मेरा नाम नैट Hardison है, और इस CS50 है.