1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] نيت HARDISON: في البرمجة، ومكتبة عبارة عن مجموعة من 2 00:00:09,470 --> 00:00:11,380 ذات الصلة رمز مكتوب مسبقا. 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 بدلا من ذلك، انها جزء من المكتبات القياسية C، والتي هي 13 00:00:34,320 --> 00:00:36,080 مجموعة من الوظائف التي تأتي مع 14 00:00:36,080 --> 00:00:38,050 C لغة البرمجة. 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 >> المعيار مكتبات C، والتي هي جزء 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 مقارنة السلاسل C، والحصول على طولها، وسلسلة لهم. 30 00:01:20,960 --> 00:01:22,410 ومكتبة الرياضيات يمنحك مفيدة 31 00:01:22,410 --> 00:01:25,062 والثوابت، ومثل بي والبريد. 32 00:01:25,062 --> 00:01:27,650 الآن، بالمقارنة مع المكتبات مستوى البرمجة الأخرى 33 00:01:27,650 --> 00:01:31,190 لغات، مكتبات C القياسية صغيرة حقا، 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 فقط C المكتبات، وهناك غيرها الكثير هناك في 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 الأدوات المتاحة في صندوق الأدوات الخاص بك بحيث يمكنك استخدام 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 مألوفا، مثل العثور على طول سلسلة C، كنت 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 تفكر في ذلك، رابط. 58 00:02:31,010 --> 00:02:33,830 ملفات الكائنات هي تلك ملفات الإخراج التي تحصل عند 59 00:02:33,830 --> 00:02:35,860 تجميع C التعليمات البرمجية المصدر. 60 00:02:35,860 --> 00:02:38,420 عندما المبرمجين كتابة المكتبات، فإنها عادة 61 00:02:38,420 --> 00:02:41,560 فصل من C رمز إلى نوعين من الملفات: 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 هذه الموارد تشمل وظائف، والمتغيرات، البنيات، 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 >> على سبيل المثال، يمكنك سحب ما يصل البيرة / وتشمل / 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 المكان المناسب للذهاب إذا كنت أتساءل كيف معيار I / O 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 هذا هو، وتطبيقات حقيقية لوظيفة. 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 أضعاف التغليف. 85 00:03:48,960 --> 00:03:52,630 >> كمستخدم أو العميل من مكتبة، فإنك لا تحتاج إلى 86 00:03:52,630 --> 00:03:54,230 معرفة الداخلية للمكتبة في 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 الحاجة، إلا إلى إعادة ترجمة مكتبة من الصفر، لذلك 114 00:05:07,840 --> 00:05:10,270 كنت غالبا ما تترك هذه الطائرات. 115 00:05:10,270 --> 00:05:13,670 >> لاستخدام مكتبة C، عليك أن تفعل شيئين. 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 وظائف، والمتغيرات، البنيات، وهلم جرا، في الوقت الحاضر 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 على العديد من أنظمة، بما في ذلك الأجهزة، ومستوى C 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 ربط مكتبة CS50-مع lcs50. 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 المكتبات في C. استكشاف المتعة. 152 00:07:02,150 --> 00:07:05,880 اسمي نيت Hardison، وهذا هو CS50.