1 00:00:06,692 --> 00:00:09,470 [Powered by Google Translate] NATE HARDISON: proqramlaşdırma, bir kitabxana toplusudur 2 00:00:09,470 --> 00:00:11,380 əlaqədar prewritten kodu. 3 00:00:11,380 --> 00:00:14,350 Kitabxanalar necə, kimi proqramçılar, səhm ümumi və 4 00:00:14,350 --> 00:00:16,930 müxtəlif proqramları ilə bir-biri ilə faydalı kodu, biz 5 00:00:16,930 --> 00:00:19,470 , yazmaq və hətta müxtəlif proseslər çalışan ilə 6 00:00:19,470 --> 00:00:21,380 bizim kompüter eyni zamanda. 7 00:00:21,380 --> 00:00:23,000 >> Nin bir az tədqiq edək. 8 00:00:23,000 --> 00:00:25,070 Yəqin etdik ki, daha ümumi funksiyalarından biri 9 00:00:25,070 --> 00:00:27,500 istifadə edən printf funksiyası var. 10 00:00:27,500 --> 00:00:29,820 İndi printf oldu ki, bəzi sehrli funksiyası deyil 11 00:00:29,820 --> 00:00:31,670 kompüter olan ağır kodlu - 12 00:00:31,670 --> 00:00:34,320 daha doğrusu, bu olan C Standard Kitabxanalar hissəsi var 13 00:00:34,320 --> 00:00:36,080 ilə gəlir ki, funksiyalarının toplusu 14 00:00:36,080 --> 00:00:38,050 C proqramlaşdırma dili. 15 00:00:38,050 --> 00:00:40,920 Printf kompüter daxil deyil ildən, o deməkdir ki, 16 00:00:40,920 --> 00:00:43,520 orada həqiqətən getdi bəzi proqramçı idi və yazdı 17 00:00:43,520 --> 00:00:46,310 printf funksiyası və standart qalan ilə paketlenmiş 18 00:00:46,310 --> 00:00:48,880 kitabxana gələcək proqramçılar var ki, belə 19 00:00:48,880 --> 00:00:50,310 səy dublikat. 20 00:00:50,310 --> 00:00:52,620 Yoxlamaq, çünki biz o halda ki, əmin şükür edirik 21 00:00:52,620 --> 00:00:54,710 faktiki printf həyata keçirilməsi nə qədər çox kodu out. 22 00:00:59,590 --> 00:01:02,860 >> Printf bir hissəsi olan C Standard Kitabxanalar, var 23 00:01:02,860 --> 00:01:04,480 ən mühüm vasitələrdən biri 24 00:01:04,480 --> 00:01:06,770 CS50 həlli var. 25 00:01:06,770 --> 00:01:08,780 Giriş-çıxış kitabxana əlavə yerləşir 26 00:01:08,780 --> 00:01:11,370 printf yaşayır, digər kitabxanaların bir qom var 27 00:01:11,370 --> 00:01:14,230 yəqin ki, CS50 ərzində istifadə edəcəyik. 28 00:01:14,230 --> 00:01:16,730 Məsələn, simli kitabxana funksiyaları vardır 29 00:01:16,730 --> 00:01:20,960 C strings müqayisə, onların uzunluğu almaq və onlara concatenate. 30 00:01:20,960 --> 00:01:22,410 Və riyaziyyat kitabxana sizə yardım verir 31 00:01:22,410 --> 00:01:25,062 pi və e kimi sabitləri. 32 00:01:25,062 --> 00:01:27,650 İndi, digər proqramlaşdırma standart kitabxana ilə müqayisədə 33 00:01:27,650 --> 00:01:31,190 Dil, C Standard Kitabxanalar, həqiqətən, kiçik 34 00:01:31,190 --> 00:01:34,060 lakin onlar hələ məhsullarının əhəmiyyətli miqdarda var. 35 00:01:34,060 --> 00:01:36,370 Və Standard kitabxanalar var ki, deyil 36 00:01:36,370 --> 00:01:39,020 yalnız C kitabxanalar; də orada daha çox var 37 00:01:39,020 --> 00:01:42,460 dünya sizə CS50 Kitabxana, o cümlədən istifadə üçün, 38 00:01:42,460 --> 00:01:45,150 şifrələmə və parol çözme ilə kartoqrafiya kitabxana 39 00:01:45,150 --> 00:01:48,000 kodlar və funksiyaları ilə funksiyaları, kitabxana 40 00:01:48,000 --> 00:01:50,970 video geri oynamaq, və s. 41 00:01:50,970 --> 00:01:53,190 >> Bu əhəmiyyətli bir kənara bizə gətirir. 42 00:01:53,190 --> 00:01:55,500 Engineering əsas bacarıqlarının biri biləndir 43 00:01:55,500 --> 00:01:58,090 tools sizin qutusu mövcud istifadə edə bilər ki, 44 00:01:58,090 --> 00:01:59,850 onlara və halda tam yeniləndirir qarşısını almaq 45 00:01:59,850 --> 00:02:01,510 Bunu etmək lazımdır. 46 00:02:01,510 --> 00:02:04,120 Proqramçılar kimi, kitabxanaların ən mühüm biridir 47 00:02:04,120 --> 00:02:05,520 biz alətlər. 48 00:02:05,520 --> 00:02:08,520 Tapmaq zaman özünüzü yorucu və ya görünür bir tapşırıq qarşı-qarşıya 49 00:02:08,520 --> 00:02:11,940 adi bir C simli uzunluğu tapmaq kimi, 50 00:02:11,940 --> 00:02:14,020 o halda ola bilər if özünüz xahiş etməlidir ki, 51 00:02:14,020 --> 00:02:16,520 kimsə artıq əvvəl eyni şeyi edir. 52 00:02:16,520 --> 00:02:17,760 Fırsatlarımız bəzi tapa bilər ki, 53 00:02:17,760 --> 00:02:20,110 bir kitabxana daxilində kömək edir. 54 00:02:20,110 --> 00:02:23,260 >> Belə ki, texniki baxımından bir kitabxana bir ikili fayl 55 00:02:23,260 --> 00:02:26,210 toplusu birlikdə birləşdirən tərəfindən istehsal olunub 56 00:02:26,210 --> 00:02:28,880 bir alət istifadə edərək, obyekt faylları adlı siz 57 00:02:28,880 --> 00:02:31,010 ki, Linker guessed. 58 00:02:31,010 --> 00:02:33,830 Obyekt faylları olur. O faylları zaman sizə almaq 59 00:02:33,830 --> 00:02:35,860 C mənbə kodu tərtib edir. 60 00:02:35,860 --> 00:02:38,420 Proqramçılar kitabxana yazmaq, onlar adətən 61 00:02:38,420 --> 00:02:41,560 faylları iki növ öz C kodunu ayırmaq: 62 00:02:41,560 --> 00:02:44,880 mövzu faylları və həyata faylları. 63 00:02:44,880 --> 00:02:49,820 Konvensiya tərəfindən header fayl,. H fayl uzantısı verilir 64 00:02:49,820 --> 00:02:51,940 və kitabxana bəyan edir ki, kodu daxil 65 00:02:51,940 --> 00:02:55,120 istifadə üçün mövcud olan resursları. 66 00:02:55,120 --> 00:02:58,830 Bu ehtiyatlar funksiyaları, dəyişənlər, structs daxildir 67 00:02:58,830 --> 00:03:01,980 tipli anlayışlar və s və birlikdə onlar 68 00:03:01,980 --> 00:03:04,620 ümumi interfeys adlandırılacaq. 69 00:03:04,620 --> 00:03:07,280 Əslində, əgər heç bir kitabxana var nə merak 70 00:03:07,280 --> 00:03:09,580 mövzu faylları axtarmaq üçün yer var. 71 00:03:09,580 --> 00:03:14,030 >> Məsələn, usr qoparmaq / daxil / stdio.h və kontrol edə bilərsiniz 72 00:03:14,030 --> 00:03:16,210 hər şeyi Əgər haqqında bilmək istəyirdilər 73 00:03:16,210 --> 00:03:18,570 standart io kitabxana. 74 00:03:18,570 --> 00:03:20,610 Burada ildə məhsullarının çox var, və bir az bilər 75 00:03:20,610 --> 00:03:22,420 taramak zorunda vaxt. 76 00:03:22,420 --> 00:03:25,840 Lakin, Google və manpages ilə yanaşı, bu ki, 77 00:03:25,840 --> 00:03:28,060 siz merak istəyirsinizsə getmək üçün yer necə standart I / O 78 00:03:28,060 --> 00:03:30,460 kitabxana funksiyaları işləməyəcək. 79 00:03:30,460 --> 00:03:33,910 Belə ki, burada qeyd etmək üçün bir əsas şey olsa da, mövzu faylları ki, 80 00:03:33,910 --> 00:03:36,740 adətən funksiyası anlayışlar daxil deyil - 81 00:03:36,740 --> 00:03:40,020 ki, faktiki funksiyası tətbiq edir. 82 00:03:40,020 --> 00:03:42,470 Bu əhəmiyyətli bir kompüter bir illüstrasiya edir 83 00:03:42,470 --> 00:03:45,700 prinsipi ilə istinad məlumat gizlətmək adlı 84 00:03:45,700 --> 00:03:48,960 encapsulation dəfə. 85 00:03:48,960 --> 00:03:52,630 >> Kitabxana istifadəçi və ya müştəri kimi, ehtiyac yoxdur 86 00:03:52,630 --> 00:03:54,230 ildə kitabxananın daxili bilirik 87 00:03:54,230 --> 00:03:55,380 istifadə etmək üçün. 88 00:03:55,380 --> 00:03:57,800 Yalnız bir az əvvəl printf görən saxla? 89 00:03:57,800 --> 00:04:00,275 Əgər əvvəl faktiki kodu görmüşdü? 90 00:04:00,275 --> 00:04:02,535 Bəli, Mən sizə güc olsa da, siz ki, güman 91 00:04:02,535 --> 00:04:05,090 dəfə printf ton istifadə. 92 00:04:05,090 --> 00:04:08,110 Bildiyiniz idi Bütün funksiyası bəyannamə olub 93 00:04:08,110 --> 00:04:10,940 bu stdio.h header fayl. 94 00:04:10,940 --> 00:04:14,010 Hər halda, yaxşı məlumat gizlətmək xeyrinə olduğunu 95 00:04:14,010 --> 00:04:16,820 və yazmaq proqramlar hər hansı dəyişikliklər izolə olunur 96 00:04:16,820 --> 00:04:20,209 kitabxana funksiyalarının həyata keçirilməsi kodu. 97 00:04:20,209 --> 00:04:22,880 Printf dəyişikliklərin həyata keçirilməsi, siz yoxdur 98 00:04:22,880 --> 00:04:26,310 getmək və printf istifadə proqramları bütün dəyişdirmək üçün. 99 00:04:26,310 --> 00:04:28,450 >> Belə ki, həyata yerləşir getmək edir? 100 00:04:28,450 --> 00:04:31,020 Bəli, yenə konvensiya tərəfindən icrası gedir 101 00:04:31,020 --> 00:04:34,310 edir. c fayl uzantısı ilə faylı. 102 00:04:34,310 --> 00:04:36,820 Adətən, mövzu faylları və həyata faylları əl getmək 103 00:04:36,820 --> 00:04:39,380 tərəfdən, belə ki, yeni simli bir dəstə elan olsanız 104 00:04:39,380 --> 00:04:42,950 mystring.h funksiyaları, sonra bütün müəyyən olacaq 105 00:04:42,950 --> 00:04:46,960 mystring həmin funksiyaları. c. 106 00:04:46,960 --> 00:04:49,230 Beləliklə mövzu və həyata faylları sonra 107 00:04:49,230 --> 00:04:52,230 sonra bağlı olan obyekt faylları yaratmaq, tərtib 108 00:04:52,230 --> 00:04:55,360 ikili kitabxana fayl istehsal birlikdə. 109 00:04:55,360 --> 00:04:58,520 Kitabxana yazıçı sonra ikili fayl boyunca yükləyəcək 110 00:04:58,520 --> 00:05:00,720 mövzu faylları istifadə etmək istəyən proqramçılar ilə 111 00:05:00,720 --> 00:05:02,280 kitabxana. 112 00:05:02,280 --> 00:05:04,640 Bu nöqtədə. C həyata faylları deyil 113 00:05:04,640 --> 00:05:07,840 ki, sıfırdan kitabxana derleyeceğiz istisna olmaqla, ehtiyac 114 00:05:07,840 --> 00:05:10,270 onlar tez-tez tərk edirik. 115 00:05:10,270 --> 00:05:13,670 >> C kitabxana istifadə etmək üçün iki şeyə var. 116 00:05:13,670 --> 00:05:16,890 Birincisi, # kitabxana mövzu faylları və daxil olmalıdır 117 00:05:16,890 --> 00:05:18,700 istifadə istediğiniz mənbə kodu fayl 118 00:05:18,700 --> 00:05:20,530 kitabxana kodu. 119 00:05:20,530 --> 00:05:23,200 Bu bəyannamə bütün compiler məlumat 120 00:05:23,200 --> 00:05:26,890 funksiyaları, dəyişənlər, structs, Et Cetera ki, mövcud 121 00:05:26,890 --> 00:05:30,510 mövzu faylları belə compiler bir sığortalaya bilər ki, 122 00:05:30,510 --> 00:05:33,280 Əgər lazımi şəkildə kitabxana resurslarının istifadə etdiyiniz 123 00:05:33,280 --> 00:05:37,120 və iki, müvafiq toplaşmaq kodu yaratmaq. 124 00:05:37,120 --> 00:05:38,910 Kitabxana mövzu faylları olduğu asılı olaraq 125 00:05:38,910 --> 00:05:42,720 yerləşən # daxildir sintaksis dəyişir. 126 00:05:42,720 --> 00:05:44,880 Mövzu faylları sisteminin yerləşir edin 127 00:05:44,880 --> 00:05:46,690 default qovluğu daxil - 128 00:05:46,690 --> 00:05:48,780 adətən, usr/include-- 129 00:05:48,780 --> 00:05:52,200 daxildir # kimi sonra bucaq mötərizədə sintaksis istifadə olunur 130 00:05:52,200 --> 00:05:53,450 . 131 00:05:57,440 --> 00:05:59,540 Lakin, mövzu faylları eyni yerləşir əgər 132 00:05:59,540 --> 00:06:02,960 directory öz kodu kimi, ikiqat quote sintaksis edir 133 00:06:02,960 --> 00:06:04,870 # "mylib.h" daxildir kimi istifadə olunur. 134 00:06:08,630 --> 00:06:11,220 >> Siz ikinci şey ikili keçid etmək 135 00:06:11,220 --> 00:06:13,760 Siz kodu tərtib zaman kitabxana faylı. 136 00:06:13,760 --> 00:06:15,810 Bu super mühüm addımdır. 137 00:06:15,810 --> 00:06:17,540 Mövzu haqqında bizim əvvəllər müzakirə saxla 138 00:06:17,540 --> 00:06:20,200 faylları həyata kodu daxil deyil? 139 00:06:20,200 --> 00:06:22,200 Bu addımı unutsanız, haqqında səhvlər almaq lazımdır 140 00:06:22,200 --> 00:06:24,990 undefined simvol kodunuzu müraciət. 141 00:06:24,990 --> 00:06:29,580 Bu həll etmək üçün,-l bayrağı dərhal sonra istifadə 142 00:06:29,580 --> 00:06:32,320 kitabxana adı ilə bir yer yoxdur. 143 00:06:32,320 --> 00:06:35,410 Aracın, C Standard daxil olmaqla bir çox sistemləri, On 144 00:06:35,410 --> 00:06:38,350 Kitabxanalar sizin üçün avtomatik olaraq bağlıdır. 145 00:06:38,350 --> 00:06:41,700 Lakin, riyaziyyat kitabxana bəzən ayrı-ayrı paketlenmiştir 146 00:06:41,700 --> 00:06:44,600 və-lm ilə bağlı lazım ola bilər. 147 00:06:44,600 --> 00:06:47,760 Aracın, biz sizin üçün bu qayğı və biz də 148 00:06:47,760 --> 00:06:52,170 -lcs50 ilə CS50 kitabxana keçid. 149 00:06:52,170 --> 00:06:54,540 Siz etmək çalıştırdığınızda Aracın bu bütün bilərsiniz. 150 00:06:57,620 --> 00:06:59,130 >> İndi siz istifadə lazımdır bilik olmalıdır 151 00:06:59,130 --> 00:07:02,150 C. kitabxana kəşfiyyat fun var. 152 00:07:02,150 --> 00:07:05,880 My name Nate Hardison və bu CS50 edir.