1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] NATE Хардисон: У праграмаванні, бібліятэка ўяўляе сабой набор 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 выкарыстоўвае гэта Е функцыя. 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 Е функцыя і ў камплекце з астатняй стандартнай 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 >> Напрыклад, вы можаце падцягнуць 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 Аднак, разам з Google і старонкі кіраўніцтваў, гэта 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 Standard 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 і, магчыма, павінны быць увязаныя з-лм. 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 бібліятэкі ў С. Поспехі вывучэння. 152 00:07:02,150 --> 00:07:05,880 Мяне клічуць Нейт Хардисон, і гэта CS50.