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 به کامپیوتر hard-coded بودن - 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 ثابت، مانند PI و E است. 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 فایل های مورد نظر که فایل های O که شما می توانید زمانی که شما 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 >> به عنوان مثال، شما می توانید بکشید تا مسیر 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 با این حال، همراه با گوگل و راهنماها، این است که 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 فایل را با فرمت فایل C. 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 در این مرحله، فایل های C پیاده سازی 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.