[Powered by Google Translate] NATE Хардисон: У праграмаванні, бібліятэка ўяўляе сабой набор
звязаных Стандартная код.
Бібліятэкі, як мы, праграмісты, агульныя і
Код карыснымі адзін з адным, з рознымі праграмамі мы
пісаць, і нават з рознымі працэсамі, запушчанымі на
той жа час на нашых кампутарах.
>> Давайце разгледзім няшмат.
Адзін з найбольш распаўсюджаных функцый, якія вы, верагодна,
выкарыстоўвае гэта Е функцыя.
Цяпер, Printf гэта не нейкая магічная функцыя, якая была
жорстка запраграмавана ў кампутары -
хутчэй, гэта частка стандартнай бібліятэкі C, якія з'яўляюцца
набор функцый, які пастаўляецца з
C мова праграмавання.
З Printf ня убудаваны ў кампутар, гэта азначае, што
было некаторы праграміста, які на самай справе пайшоў і напісаў
Е функцыя і ў камплекце з астатняй стандартнай
Бібліятэкі так, каб будучыя праграмісты не прыйдзецца
дублявання высілкаў.
І мы ўпэўнены, што ўдзячная, што гэта так, таму што праверыць
, Колькі кода на самай справе патрабуецца для ажыццяўлення Printf.
>> C стандартныя бібліятэкі, якія Printf з'яўляецца часткай з'яўляюцца
адным з самых важных інструментаў
ёсць у вырашэнні CS50.
У дадатак да ўводу-вываду бібліятэкі, дзе
Printf жыцця, ёсць куча іншых бібліятэк, якія
Вы, верагодна, выкарыстоўваць на працягу CS50.
Напрыклад, радок бібліятэка функцый
C параўнаць радкі, каб іх даўжыня, і аб'яднаць іх.
І матэматычныя бібліятэкі дае Вам карыснымі
канстанты, як пі і е.
Цяпер, у параўнанні са стандартнымі бібліятэкамі іншых праграм
мовы, C стандартныя бібліятэкі вельмі невялікі,
але яны ўсё яшчэ маюць значную колькасць матэрыялу.
І гэта не азначае, што стандартныя бібліятэкі
Толькі C бібліятэкі, ёсць яшчэ шмат там, у
свет для вас выкарыстоўваць, у тым ліку CS50 бібліятэкі,
картаграфіі бібліятэкі шыфравання і дэшыфраванні
Функцыі, бібліятэк з функцыямі для кадавання і
прайграванне відэа, і гэтак далей.
>> Гэта падводзіць нас да важнай боку.
Адным з найважнейшых навыкаў інжынерна ведаючы,
інструментаў, даступных у вашай панэлі інструментаў, так што вы можаце выкарыстоўваць
іх і не вынаходзіць кола, калі
Вы павінны зрабіць гэта.
Як праграмісты, бібліятэкі з'яўляюцца адным з найбольш важных
прылады ў нас ёсць.
Калі вы апынецеся перад задачай, якая здаецца стомным або
звычайнай справай, як знайсці даўжыню радка C, вы
Варта спытаць сябе, калі ён можа быць так, што
хтосьці ўжо зрабіў тое ж самае раней.
Хутчэй за ўсё, што вы маглі б знайсці некаторыя
дапамогу ў бібліятэцы.
>> Такім чынам, з тэхнічнага пункту гледжання, бібліятэка ўяўляе сабой бінарны файл, што
была праведзена шляхам звязвання разам калекцыя
Аб'ект файлаў з дапамогай інструмента пад назвай, вы
здагадаліся, кампаноўнік.
Аб'ект файлы тых. Выводзяцца файлаў, якія вы атрымліваеце, калі вы
кампіляцыі C зыходны код.
Калі праграмісты пішуць бібліятэкі, яны звычайна
аддзяліць іх C код у файлы двух тыпаў:
загалоўкавыя файлы і файлы рэалізацыі.
Загалоўка файла ў адпаведнасці з пагадненнем з улікам. Ч пашырэнне файла,
і ўтрымоўвае код, які аб'яўляе бібліятэкі
рэсурсаў, якія даступныя для вас выкарыстаць.
Гэтыя рэсурсы ўключаюць у сябе функцыі, зменныя, структуры,
вызначэння тыпу, і гэтак далей, і разам яны
звычайна называюць інтэрфейс.
На самай справе, калі вы калі-небудзь цікава, што ў бібліятэцы,
файлы загалоўкаў з'яўляюцца месцам для пошуку.
>> Напрыклад, вы можаце падцягнуць USR / ўключаць / stdio.h і праверыць
усё, што вы калі-небудзь хацелі ведаць пра
Стандартная бібліятэка ўводу-высновы.
Там вельмі шмат рэчаў тут, і гэта можа заняць крыху
часу, каб прабрацца праз.
Аднак, разам з Google і старонкі кіраўніцтваў, гэта
месца, каб пайсці, калі вам цікава, як стандартны I / O
бібліятэчныя функцыі працуюць.
Так што ключавая рэч, каб адзначыць тут, аднак, з'яўляецца тое, што файлы загалоўкаў
як правіла, не ўключаюць функцыю вызначэння -
гэта значыць, фактычная рэалізацыя функцыі.
Гэта ілюстрацыя з важных кампутарных навук
Прынцып называецца ўтойванне інфармацыі, таксама згадваецца ў
раз інкапсуляцыі.
>> Як карыстальнік або кліент бібліятэкі, вы не павінны
ведаць аб ўнутраным бібліятэкі ў
Для таго каб выкарыстоўваць яго.
Памятаеце, бачачы Printf трохі назад?
Калі б вы калі-небудзь бачылі рэальны код раней?
Ну, я мяркую, што ў вас няма, хоць вы, магчыма,
выкарыстоўвалі Printf тон разы.
Усё, што вы павінны былі ведаць была сапраўдная дэкларацыя функцыі
У загалоўку файла stdio.h.
Ва ўсякім выпадку, на карысць добрага ўтойвання інфармацыі з'яўляецца тое, што
і праграм, якія вы пішыце ізаляваны ад любых змяненняў у
Код рэалізацыі бібліятэчных функцый.
Калі рэалізацыя Printf змены, вам не прыйдзецца
пайсці і змяніць усе вашы праграмы, якія выкарыстоўваюць Printf.
>> Дык дзе ж рэалізацыя ісці?
Ну, ізноў жа, па дамове, рэалізацыя ідзе ў
Файл з пашырэннем. Файл с.
Як правіла, файлы загалоўкаў і файлы рэалізацыі ідуць рука
у руцэ, так што калі вы абвясцілі некалькі новых радкоў
функцыі ў mystring.h, то вы будзеце вызначаць ўсё
гэтыя функцыі ў MyString. с.
Такім чынам, то загаловак і рэалізацыя файлы, то
складзены, стварэнне аб'ектных файлаў, якія затым звязваюцца
разам для стварэння двайковага файла бібліятэкі.
У бібліятэцы пісьменніка будзе грузіць двайковы файл разам
з загалоўка файла для праграмістаў, якія хочуць выкарыстаць
бібліятэкі.
На дадзены момант,. Файлы з рэалізацыі, не з'яўляюцца
неабходна, акрамя перакампіляваць бібліятэку з нуля, таму
яны часта застаюцца.
>> Для выкарыстання бібліятэкі C, што вам трэба зрабіць дзве рэчы.
Па-першае, вы павінны # ўключыць загаловак бібліятэкі файлаў і
зыходны код файла, у якім вы хочаце выкарыстоўваць
бібліятэкі кода.
Пра гэта паведамляе кампілятару ўсіх дэкларацый
функцыі, зменныя, структуры, і гэтак далей, якія прысутнічаюць у
загалоўкавыя файлы так, каб кампілятар можна, пераканацца, што
Вы выкарыстоўваеце рэсурсы бібліятэкі ў належным парадку,
і, па-другое, генераваць адпаведны код зборкі.
У залежнасці ад таго, дзе загаловак бібліятэкі файлаў
размешчаны, # ўключыць сінтаксіс адрозніваецца.
Калі загаловак файла знаходзяцца ў сістэме
па змаўчанні ўключае каталог -
Як правіла, usr/include--
то кут сінтаксісу дужкі выкарыстоўваюцца, як у # ўключыць
.
Тым не менш, калі загаловак файла знаходзяцца ў тым жа
Каталог як свой уласны код, двайны сінтаксісу цытата
выкарыстоўваць, як у # ўключыць "mylib.h".
>> Другое, што вам трэба зрабіць, гэта перайсці па спасылцы ў двайковым
Файл бібліятэкі пры кампіляцыі кода.
Гэта супер важны крок.
Памятаеце, нашых папярэдніх дыскусій пра тое, загаловак
файлы не ўтрымліваюць кода рэалізацыі?
Калі вы забыліся гэты крок, вы атрымаеце памылкі, пра
нявызначаныя сімвалы, названыя ў кодзе.
Каб вырашыць гэтую праблему, выкарыстоўвайце сцяг-L рушыла ўслед неадкладна
без прабелу па імя бібліятэкі.
На шматлікіх сістэмах, у тым ліку прыбор, C Standard
Бібліятэкі будуць аўтаматычна звязаны для вас.
Тым не менш, матэматычныя бібліятэкі часам у камплекце асобна
і, магчыма, павінны быць увязаныя з-лм.
З прыборам, мы клапоціцца аб гэтым за вас, і мы таксама
спасылка CS50-бібліятэку з lcs50.
Вы можаце паглядзець усё гэта на прыбор, калі вы запускаеце зрабіць.
>> Цяпер вы павінны мець веды, неабходныя для выкарыстання
бібліятэкі ў С. Поспехі вывучэння.
Мяне клічуць Нейт Хардисон, і гэта CS50.