1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> Tagapagsalita: OK, gayon, ikaw ay hindi naniniwala ito, ngunit noong nakaraang linggo, sa Monday, sa Pierce, ako 3 00:00:15,180 --> 00:00:16,090 ay down sa basement. 4 00:00:16,090 --> 00:00:17,010 Hindi ko pumunta sa Pierce. 5 00:00:17,010 --> 00:00:20,530 At hindi kailanman ako pupunta bumalik muli, dahil Iniwan ko ang aking mga bagay-bagay nang mag-isa para sa, 6 00:00:20,530 --> 00:00:23,950 parang, limang minuto at isang tao nakaagaw ng aking computer at ang aking 7 00:00:23,950 --> 00:00:26,050 telepono out sa aking backpack. 8 00:00:26,050 --> 00:00:28,780 Aling ay nangangahulugan na ang nakuha ko ito pabalik, at pagkatapos ay mas mababa kaysa sa isang linggo mamaya 9 00:00:28,780 --> 00:00:30,220 muli itong nakakuha ninakaw. 10 00:00:30,220 --> 00:00:31,570 >> At pagkatapos ay nakuha ko naka-on nito - 11 00:00:31,570 --> 00:00:34,540 Hanapin ang patuloy Aking iPhone upang maging unhelpful. 12 00:00:34,540 --> 00:00:37,340 Kaya patuloy ko upang hikayatin na hindi gamitin ito. 13 00:00:37,340 --> 00:00:42,270 Nag-on-sabay, at ito ay sa MIT, tulad ng 15 minuto sa ibang pagkakataon, at ang taong 14 00:00:42,270 --> 00:00:45,770 tinatawag na numero ng telepono na ito na ipinakita sa aking mga log ng tawag AT & T. 15 00:00:45,770 --> 00:00:48,830 >> Kaya ako nagpunta sa online, tinatawag na telepono numero, at ito nagpunta diretso sa ito 16 00:00:48,830 --> 00:00:50,540 answering machine sa Espanyol. 17 00:00:50,540 --> 00:00:52,520 At hindi ko narinig ng ito dahil. 18 00:00:52,520 --> 00:00:54,800 Kaya nagkaroon ako upang makakuha ng isang bagong computer at telepono. 19 00:00:54,800 --> 00:00:55,150 Alam ko. 20 00:00:55,150 --> 00:00:56,326 Oo. 21 00:00:56,326 --> 00:01:00,110 Ngunit kung gusto mong guys sa chip in sa aking computer na pondo pagkatapos nito, na ang dahilan kung bakit 22 00:01:00,110 --> 00:01:01,030 Tinanong mo ako dito. 23 00:01:01,030 --> 00:01:02,280 Kidding lang. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Ngunit na noon ay talagang malungkot at traumatiko. 26 00:01:07,420 --> 00:01:10,700 >> Ngunit ang lahat ng ito pabalik ngayon, at iyon ay kung bakit ang p-set 8 kinuha kaya mahaba, dahil 27 00:01:10,700 --> 00:01:12,480 Hindi ko magkaroon ng isang computer. 28 00:01:12,480 --> 00:01:13,730 At isang tao nakaagaw ito. 29 00:01:13,730 --> 00:01:16,940 At nag-email ako, tinatanong kung sila gagawin ang grado ng iyong p-set 8. 30 00:01:16,940 --> 00:01:18,790 Ngunit sinabi nila hindi. 31 00:01:18,790 --> 00:01:20,000 At ako ay tulad, maaari ba akong magkaroon ng aking computer bumalik? 32 00:01:20,000 --> 00:01:21,270 At ang mga ito ay tulad ng, hindi. 33 00:01:21,270 --> 00:01:22,130 Kidding lang. 34 00:01:22,130 --> 00:01:22,930 >> OK. 35 00:01:22,930 --> 00:01:28,140 Ito ang aming panghuling seksyon, at mayroon ako isang pares ng mga - mayroon lamang namin ang tatlong 36 00:01:28,140 --> 00:01:29,790 bagay sa agenda. 37 00:01:29,790 --> 00:01:31,330 Kami ay pagpunta sa makipag-usap ng kaunti tungkol sa mga gabay Q. 38 00:01:31,330 --> 00:01:33,900 Pagkatapos kami ay pagpunta sa gumastos ng 15 minuto sa isang cool na demo. 39 00:01:33,900 --> 00:01:36,890 Pagkatapos kami ay pagpunta sa lahat ng sinasabi paalam sa isa't isa. 40 00:01:36,890 --> 00:01:41,460 Wala ka ba talagang kailangan ang iyong mga computer o ng panulat o papel na kumuha ng mga tala, o 41 00:01:41,460 --> 00:01:42,410 sundin kasama. 42 00:01:42,410 --> 00:01:45,620 Kaya ipinapalagay ko kung mayroon kang iyong computer up, pagkatapos ikaw ay nasa Facebook. 43 00:01:45,620 --> 00:01:46,530 Sinasabi lang. 44 00:01:46,530 --> 00:01:49,650 Maliban kung gumagamit ka ng pagpuno sa Gabay Q, na kung saan ay unang. 45 00:01:49,650 --> 00:01:50,690 >> Ang gabay na Q ay bukas. 46 00:01:50,690 --> 00:01:53,520 Nagkaroon ka ng email tungkol dito. 47 00:01:53,520 --> 00:01:56,930 Sa sandaling ang lahat ng mga bagay-bagay Q ay isinumite sa katapusan ng taon, nakukuha ko lahat ng 48 00:01:56,930 --> 00:02:03,710 Q komento sa score mula sa lahat ng tao sino ang pinipili upang bigyan ako ng feedback. 49 00:02:03,710 --> 00:02:04,810 At kaya kapag pumunta ka sa T - 50 00:02:04,810 --> 00:02:07,440 Hindi ko alam kung maaari mong gawin ito, Jeff, dahil ikaw at mag-aaral ng extension. 51 00:02:07,440 --> 00:02:12,730 Ngunit kapag pumunta ka sa Q, kung hindi mo pa tapos na ito bago, kinuha mo ang iyong 52 00:02:12,730 --> 00:02:14,020 guro, na si David Malan. 53 00:02:14,020 --> 00:02:14,970 Mayroon kang gawin sa kanya. 54 00:02:14,970 --> 00:02:15,690 >> At pagkatapos ay maaari kang pumili ng TFs. 55 00:02:15,690 --> 00:02:17,750 At maaari kang pumili ng maraming TFs hangga't gusto mo. 56 00:02:17,750 --> 00:02:18,990 Ngunit mayroong 60 na sa amin. 57 00:02:18,990 --> 00:02:20,350 Hindi mo na kailangang pumili lahat ng tao. 58 00:02:20,350 --> 00:02:23,090 Maaari mo lamang pumili sa akin, o pumili lamang ng isang dalawang iba pang mga tao, kung gusto mo, i- 59 00:02:23,090 --> 00:02:24,470 bigyan sila ng feedback pati na rin. 60 00:02:24,470 --> 00:02:27,595 At pagkatapos ay makakakuha ka ng mga puntos sa lahat ng mga iba't ibang mga axes, at pagkatapos ay maaari mong iwanan 61 00:02:27,595 --> 00:02:28,570 sa kanila puna. 62 00:02:28,570 --> 00:02:31,520 >> At pagkatapos, tulad ng isang buwan sa ibang pagkakataon, Kukunin ko ang lahat ng feedback na iyon. 63 00:02:31,520 --> 00:02:34,570 At tulad lamang ang feedback mo nakapunta pagbibigay sa akin sa buong semestre, ako 64 00:02:34,570 --> 00:02:35,790 basahin ang lahat ng iyon. 65 00:02:35,790 --> 00:02:39,620 At ito ay talagang kapaki-pakinabang, at ito ay tumutulong sa ako lumaki bilang isang guro at bilang isang 66 00:02:39,620 --> 00:02:40,680 indibidwal. 67 00:02:40,680 --> 00:02:43,360 Kaya, mangyaring, tumagal ng ilang oras upang gawin ito. 68 00:02:43,360 --> 00:02:45,020 Lamang kami ng pagpunta sa maging dito para sa, tulad ng, 30 minuto. 69 00:02:45,020 --> 00:02:48,090 Kaya kung nais mong, sa dulo ng ito, upang tumagal ng limang minuto, at punan lamang 70 00:02:48,090 --> 00:02:49,960 ang Q, dahil hindi ito aabutin anumang higit pang mga oras kaysa sa na. 71 00:02:49,960 --> 00:02:53,410 Iyon ay magiging kahanga-hanga, at mo ring makuha ang iyong mga marka bumalik nang mas mabilis kung 72 00:02:53,410 --> 00:02:54,620 mong punan ang Q. 73 00:02:54,620 --> 00:02:56,580 >> Kaya karamihan sa mga nagawa mo na iyon bago - 74 00:02:56,580 --> 00:02:58,240 o hindi, tungkol sa kalahati ng sa iyo nagawa na iyon bago. 75 00:02:58,240 --> 00:03:00,060 Ngunit kung ikaw ay isang primer anyo, na kung ano na. 76 00:03:00,060 --> 00:03:01,910 Ito ay pareho sa lahat ng mga klase. 77 00:03:01,910 --> 00:03:02,270 Gawin ito. 78 00:03:02,270 --> 00:03:02,900 Inaabot ito ng limang minuto. 79 00:03:02,900 --> 00:03:07,610 Ngunit din, kung gagawin mo ito nang kaunti sineseryoso, hindi iyon ang pinakamasama bagay 80 00:03:07,610 --> 00:03:10,270 sa mundo, dahil ako ay tiyak na dalhin ito sineseryoso. 81 00:03:10,270 --> 00:03:13,000 >> Kaya kung iwan mo ako ng SMILEY mukha, Ay kong pinahahalagahan na iyon. 82 00:03:13,000 --> 00:03:17,550 Ngunit ko rin Pinahahalagahan kung ikaw iniwan sa akin ang higit sa isang SMILEY mukha. 83 00:03:17,550 --> 00:03:18,270 Ngunit ito ay nakasalalay sa iyo. 84 00:03:18,270 --> 00:03:21,540 Hindi ko masasabi sa iyo - o gusto ng isang malaking SMILEY Nakaharap, na may malaking titik D. na nais 85 00:03:21,540 --> 00:03:23,060 maging mas mahusay. 86 00:03:23,060 --> 00:03:27,860 >> OK, na lamang ang mayroon ako para sa Q. Kung ikaw mayroon kayong mga katanungan, maaari mong hilingin 87 00:03:27,860 --> 00:03:29,370 sa akin, pero medyo maliwanag. 88 00:03:29,370 --> 00:03:31,090 Lamang, pakiusap, itong punan. 89 00:03:31,090 --> 00:03:34,390 Gusto ko talagang Pinahahalagahan ito, at ito ay nangangahulugan ng isang pulutong sa akin. 90 00:03:34,390 --> 00:03:38,910 >> OK, ito ay kung ano ang pagpunta namin gumastos 15 minuto sa pamamagitan ng pagpunta. 91 00:03:38,910 --> 00:03:39,800 Pupunta ako upang ipakita sa iyo ang ilang mga code. 92 00:03:39,800 --> 00:03:42,080 Sa tingin ko ito ay talagang cool na, at ito nakuha sa akin nang higit pa 93 00:03:42,080 --> 00:03:43,810 nasasabik sa computer science. 94 00:03:43,810 --> 00:03:46,480 Kaya Umaasa ako na ito ay gawin ang parehong para sa iyo lahat. 95 00:03:46,480 --> 00:03:51,760 >> Pagpunta Kami ay upang buksan up - at ang lahat ng ito code magpapadala ako sa sa iyo sa ibang pagkakataon. 96 00:03:51,760 --> 00:03:52,680 Ngunit lang kami ng pagpunta sa buksan up - 97 00:03:52,680 --> 00:03:54,310 Ako sa aking terminal - 98 00:03:54,310 --> 00:03:56,810 kami ay pagpunta upang buksan ang program na ito tinatawag na [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Maaari lahat basahin iyon, o ang dapat kong gawin itong mas malaki? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Maaari kahit sino sabihin sa akin kung ano ang code na ito habilin gawin kapag tumakbo ko ito, o kung ano ito 103 00:04:13,040 --> 00:04:14,320 programa ang gagawin kapag tumakbo ko ito? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] Ano sa tingin mo ito ay pagpunta sa gawin? 106 00:04:32,400 --> 00:04:33,335 Tapos na sapa. 107 00:04:33,335 --> 00:04:35,033 Hindi ka dapat makipag-usap sa bukas ang iyong bibig. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> Madla: tumagal ba ito ng grupo ng mga argument, hanapin kabuuan ng mga ito bumabalik 110 00:04:42,860 --> 00:04:45,285 suma, at pagkatapos ay i-print ito? 111 00:04:45,285 --> 00:04:53,045 O kaya ito ay tumatagal sa dalawang argumento, at pagkatapos ay ginagawa nito [hindi marinig]. 112 00:04:53,045 --> 00:04:56,460 At pagkatapos nito prints out kahit anong ang mga resulta ay. 113 00:04:56,460 --> 00:04:58,100 >> Tagapagsalita: Isara, talagang malapit. 114 00:04:58,100 --> 00:04:59,840 Gusto Sinuman ay upang idagdag sa [? ano Avi?] sinabi? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Kailangan mong bigyan ang program na ito anumang mga argumento command-line? 117 00:05:07,293 --> 00:05:09,145 >> Madla: Hindi. 118 00:05:09,145 --> 00:05:09,610 >> Tagapagsalita: Hindi. 119 00:05:09,610 --> 00:05:11,250 Ano ang mangyayari kung hindi mo bigyan ito ng anumang mga argumento command-line? 120 00:05:11,250 --> 00:05:12,500 Isulat ko lang ang dot slash MySum. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> Madla: 1 plus 2 ay katumbas ng 3. 123 00:05:16,630 --> 00:05:17,250 >> Tagapagsalita: 1 plus 2 ay katumbas ng 3. 124 00:05:17,250 --> 00:05:18,570 At magkakaroon ito i-print na out. 125 00:05:18,570 --> 00:05:19,450 Iyan ay akmang-akma. 126 00:05:19,450 --> 00:05:21,370 Makikita mo na naka-print f linya sa ibaba. 127 00:05:21,370 --> 00:05:23,450 Ito i-print ang a, b, at pagkatapos ay ang kabuuan ng isang at b. 128 00:05:23,450 --> 00:05:26,360 At hulaan ko na akuin ang na gumagana nang tama ang kabuuan. 129 00:05:26,360 --> 00:05:28,120 Magandang palagay. 130 00:05:28,120 --> 00:05:32,250 >> OK, at kung ano ang mangyayari kung ako bigyan ito ng kung ano ang argumento? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> Madla: Ito magdagdag ng kahit anupamang ang unang argumento ay upang b. 133 00:05:36,230 --> 00:05:37,150 O kaya sa 2, paumanhin. 134 00:05:37,150 --> 00:05:38,480 >> Tagapagsalita: Kanan, sa 2. 135 00:05:38,480 --> 00:05:42,470 Alam ba ng sinuman kung ano ang ginagawa strtol? 136 00:05:42,470 --> 00:05:43,960 Talaga Ito ay atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi ay talagang isang magarbong bersyon ng - 138 00:05:47,240 --> 00:05:49,600 o ng isang mas simpleng bersyon ng strtol. 139 00:05:49,600 --> 00:05:51,790 Ngunit ito talaga ay gumagamit ng strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 At nalaman ko na out dahil Nais kong isang bagay tulad ng atoi, at pagkatapos ay kapag ako 142 00:05:58,010 --> 00:06:01,110 ay atoi, basahin down na dito ako. 143 00:06:01,110 --> 00:06:04,380 At nakita kong "pag-uugali na ito ay kapareho ng "strtol. 144 00:06:04,380 --> 00:06:06,850 Kaya ito ay isa lamang atoi para sa lahat ng mga layunin at mga layunin. 145 00:06:06,850 --> 00:06:09,320 At nakita mo ako kahit na gamitin null at 10. 146 00:06:09,320 --> 00:06:14,390 >> Talaga ay nagbibigay-daan ito sa iyo kumuha ng isang string, at i-on ito sa isang numero, at piliin ang 147 00:06:14,390 --> 00:06:15,970 ano base gusto mong gawin ito in 148 00:06:15,970 --> 00:06:17,370 Kaya ito ay base 10 dito mismo. 149 00:06:17,370 --> 00:06:20,455 Kaya kong nagawa na base para sa dalawang decimal, base 16 para sa hexadecimal. 150 00:06:20,455 --> 00:06:22,090 Ito ay medyo cool. 151 00:06:22,090 --> 00:06:25,860 Ngunit mahaba kuwento maikli, ito ay tumatagal ng dalawang mga numero at idinadagdag ang mga ito nang sama-sama. 152 00:06:25,860 --> 00:06:29,260 >> Magpatakbo ng ito Kaya ipaalam. 153 00:06:29,260 --> 00:06:32,560 At makikita mo rin mapapansin, mayroong ang ilang mga bagay - 154 00:06:32,560 --> 00:06:37,830 kaya Mayroon akong makefile dito mismo, at kung bubuksan mo iyon up, ang ilang mga bagay 155 00:06:37,830 --> 00:06:39,270 mapapansin mo ay iba. 156 00:06:39,270 --> 00:06:42,370 Sa partikular, ang argumento dito mismo, marahil 157 00:06:42,370 --> 00:06:43,010 hindi pa nakita na bago. 158 00:06:43,010 --> 00:06:45,770 Sa pangkalahatan, compile kami bagay may gitling zero, zero. 159 00:06:45,770 --> 00:06:51,500 Dash zero, zero, ang ibig sabihin ay hindi gawin anumang mga pag-optimize, tagatala. 160 00:06:51,500 --> 00:06:54,950 Huwag subukan at gumawa ng anumang bagay magarbong, o gumawa ng kahit ano magpatakbo ng mas mabilis, o kumuha ng 161 00:06:54,950 --> 00:06:56,530 mapupuksa ang mga variable na kinakailangan. 162 00:06:56,530 --> 00:06:58,080 Huwag i-optimize ang code na ito sa lahat, 163 00:06:58,080 --> 00:07:00,110 >> Ako humihingi ng third-antas pag-optimize. 164 00:07:00,110 --> 00:07:02,580 Kaya ako nagtatanong tagatala gawin ng maraming mga pag-optimize. 165 00:07:02,580 --> 00:07:05,870 Maaari mong baguhin na sa makefile kapag mayroon kang ang code na ito, kung nais mong 166 00:07:05,870 --> 00:07:07,190 upang makita ang iba't ibang mga bagay-bagay. 167 00:07:07,190 --> 00:07:08,660 Aling ipapakita namin sa isang segundo. 168 00:07:08,660 --> 00:07:12,080 Kaya nagsasagawa kami ng aking sum 1 plus 2 plus 3. 169 00:07:12,080 --> 00:07:13,445 Isang tao ninyo akong bigyan ng dalawang argumento. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> Madla: 4 at 5. 172 00:07:18,210 --> 00:07:18,966 >> Tagapagsalita: 4 at 5. 173 00:07:18,966 --> 00:07:19,900 Salamat sa inyo. 174 00:07:19,900 --> 00:07:20,860 Mahusay, ito gumagana. 175 00:07:20,860 --> 00:07:25,700 Ano ang ilang mga iba pang mahusay na mga argumento subukan, upang matiyak na ito ay gumagana? 176 00:07:25,700 --> 00:07:27,050 Sinuman? 177 00:07:27,050 --> 00:07:27,430 >> Madla: 0. 178 00:07:27,430 --> 00:07:29,210 >> Tagapagsalita: 0 at? 179 00:07:29,210 --> 00:07:31,010 >> Madla: Negatibong 3. 180 00:07:31,010 --> 00:07:32,040 >> Tagapagsalita: Gumagana ito. 181 00:07:32,040 --> 00:07:33,670 Ngunit ang mga ay magandang mga pagpipilian. 182 00:07:33,670 --> 00:07:36,600 OK, na bumalik dito upang ipaalam. 183 00:07:36,600 --> 00:07:38,540 Ito ay mysum.c. 184 00:07:38,540 --> 00:07:42,440 Mapapansin mo mayroon ding isang bagay tinatawag sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 At ito sabi, oh, mayroong isang bagay tinukoy sa sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 Hindi ko isama ang file na ito sa dito dahil hindi ko na kailangang. 187 00:07:51,480 --> 00:07:54,840 Ngunit link ko ito sa kapag compile ko, saan mo napansin. 188 00:07:54,840 --> 00:07:57,380 >> Ni-scroll pataas Hayaan. 189 00:07:57,380 --> 00:08:02,880 Nakita namin kapag pinagsama-sama namin mysum, i-right doon, naka-link namin sa binary mula sa 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 At hindi ko kailangan ang header na file dahil, siyempre, naroon ang 193 00:08:08,470 --> 00:08:09,240 function na deklarasyon. 194 00:08:09,240 --> 00:08:12,200 Kaya matalim isama normal lang nilalagay sa isang function na pagpapahayag. 195 00:08:12,200 --> 00:08:13,730 Narito Naglaan ko lang ito tuwid sa code. 196 00:08:13,730 --> 00:08:16,370 At kaya kailangan kong gawin ay link sa binary, na gagawin ko. 197 00:08:16,370 --> 00:08:19,950 >> Anumang guesses para sa kung ano ang sa sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Ano code na naisulat ko sa sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> Madla: [hindi marinig]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> Tagapagsalita: Anumang guesses? 203 00:08:30,630 --> 00:08:30,940 Oo? 204 00:08:30,940 --> 00:08:33,710 >> Madla: Sa tingin ko, tumutukoy sa ilang [hindi marinig]. 205 00:08:33,710 --> 00:08:33,975 >> Tagapagsalita: Oo. 206 00:08:33,975 --> 00:08:37,650 Kaya gagawin ko pagpapawalang int sum int a. 207 00:08:37,650 --> 00:08:41,120 Isulat ko ang linyang ito, at pagkatapos ay mayroon bukas ko kulot suhay, sarado kulot suhay. 208 00:08:41,120 --> 00:08:46,160 Ano ang tingin mo isulat ko sa loob ng mga kulot tirante, sa loob na ng function? 209 00:08:46,160 --> 00:08:46,600 Oo? 210 00:08:46,600 --> 00:08:48,150 >> Madla: Return ay katumbas ng isang. 211 00:08:48,150 --> 00:08:50,010 >> Processor: Iyon ay isang talagang magandang hulaan. 212 00:08:50,010 --> 00:08:51,720 Sino palagay ni [? Manu?] Ay tama? 213 00:08:51,720 --> 00:08:54,122 Sinasabi nito bumalik ng plus b. 214 00:08:54,122 --> 00:08:55,860 OK, hindi lahat ng tao. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 gagawin mo ito, masyadong? 217 00:08:57,390 --> 00:09:00,430 Sigurado ka? 218 00:09:00,430 --> 00:09:01,680 OK. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Ano? 221 00:09:10,050 --> 00:09:11,662 >> Madla: mali ang pagbaybay mo itong mali. 222 00:09:11,662 --> 00:09:13,000 >> Tagapagsalita: Hindi, ginawa ko hindi. 223 00:09:13,000 --> 00:09:13,966 Oo, lamang kidding. 224 00:09:13,966 --> 00:09:15,300 Tama ka. 225 00:09:15,300 --> 00:09:15,930 Iyon ay eksakto kung ano ang sinasabi nito. 226 00:09:15,930 --> 00:09:17,110 Ito ay nagbabalik ng plus b. 227 00:09:17,110 --> 00:09:18,570 Na gumagawa ng maraming kahulugan. 228 00:09:18,570 --> 00:09:20,240 >> OK, na bumalik dito ipaalam. 229 00:09:20,240 --> 00:09:21,490 Nakakakita kami ng kung paano ang header - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 iyon ang uri ng return. 232 00:09:25,660 --> 00:09:29,100 Tandaan, nakakita kami ng araw na iyon isa, ang uri ng pag-andar bumalik, ngunit napupunta 233 00:09:29,100 --> 00:09:30,160 bago ang pangalan ng int function. 234 00:09:30,160 --> 00:09:31,560 Dito, na naisulat ko int. 235 00:09:31,560 --> 00:09:35,680 Ano sa tingin mo ang mangyayari kung sa ito function, hindi ako sumulat int, ngunit 236 00:09:35,680 --> 00:09:38,270 Sumulat ako unsigned? 237 00:09:38,270 --> 00:09:41,050 Ang pagkakaiba, siyempre, pagiging na wala pang kontratang kumakatawan lamang positibong 238 00:09:41,050 --> 00:09:43,620 integer, at int ay maaaring maging positibo o negatibo. 239 00:09:43,620 --> 00:09:45,450 >> Kaya nabago ko na ang pagbalik uri ng function. 240 00:09:45,450 --> 00:09:49,370 Ang code na ito ay hindi tumutugma i-type dito balik na ito. 241 00:09:49,370 --> 00:09:50,925 Ano sa tingin mo ang mangyayari kapag compile ko? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Dapat mong sumigaw sa akin. 244 00:09:56,240 --> 00:09:57,700 Walang yelling. 245 00:09:57,700 --> 00:10:00,050 >> Paano ang tungkol sa kapag tumatakbo ako sa program? 246 00:10:00,050 --> 00:10:05,810 Ni gawin bago 0 negatibong Hayaan 3, o negatibong 1. 247 00:10:05,810 --> 00:10:10,180 Gumagana pa rin ito, kahit ako sinasabi ito ay bumabalik isang wala pang kontratang integer. 248 00:10:10,180 --> 00:10:12,060 Malinaw na hindi ito bumabalik isang wala pang kontratang integer. 249 00:10:12,060 --> 00:10:13,520 Ito ay bumabalik isang naka-sign integer. 250 00:10:13,520 --> 00:10:16,130 Ito ay bumabalik negatibong 1. 251 00:10:16,130 --> 00:10:17,830 OK, na kakaiba. 252 00:10:17,830 --> 00:10:27,030 >> Paano ang tungkol sa kung pumunta ako sa dito at gawin iyon? 253 00:10:27,030 --> 00:10:29,700 Kaya nagbago ako ng lahat ng bagay mula int sa unsigned. 254 00:10:29,700 --> 00:10:31,590 Maaari lamang tumagal unsigned integer. 255 00:10:31,590 --> 00:10:33,840 Ngunit huwag namin iniisip pa rin magkakaroon ito tatakbo? 256 00:10:33,840 --> 00:10:35,652 >> Madla: Oo. 257 00:10:35,652 --> 00:10:37,270 >> Tagapagsalita: habilin Ito. 258 00:10:37,270 --> 00:10:39,410 Iyon ay mabaliw. 259 00:10:39,410 --> 00:10:43,140 At pumasa kami sa isang malinaw na itinalaga integer, maaari naming ipasa ang dalawang sign 260 00:10:43,140 --> 00:10:46,280 integer, pa rin gumagana ito. 261 00:10:46,280 --> 00:10:52,150 >> OK, ang anumang mga ideya ng kung bakit ito pa rin ang gumagana, o kung ano ang nangyayari sa? 262 00:10:52,150 --> 00:10:53,368 Oo, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> Madla: Ito ay may isang bagay na gawin sa iyong pag-optimize na sa iyo 264 00:10:56,296 --> 00:10:57,760 naka-highlight. 265 00:10:57,760 --> 00:10:58,210 >> Tagapagsalita: Hindi. 266 00:10:58,210 --> 00:11:00,570 Maaari naming baguhin ang pag-optimize, Gusto ito pa rin gumagana. 267 00:11:00,570 --> 00:11:02,240 Maaari ko bang gawin iyon para sa iyo, ngunit - 268 00:11:02,240 --> 00:11:02,930 >> Madla: Kukunin ko ang iyong mga salita para dito. 269 00:11:02,930 --> 00:11:03,690 >> Tagapagsalita: Oo. 270 00:11:03,690 --> 00:11:09,690 Kung buksan mo ang makefile dito mismo, Nabago ko ang pag-optimize. 271 00:11:09,690 --> 00:11:11,570 Kaya maaari mong gawin gitling zero, zero. 272 00:11:11,570 --> 00:11:12,820 Ito pa rin gumagana. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Iba pang mga saloobin? 275 00:11:20,280 --> 00:11:22,600 >> Lahat ng inaasahan mo guys upang gumana, kaya Bakit inaasahan mo ito upang gumana? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Walang? 278 00:11:32,150 --> 00:11:33,660 Katahimikan. 279 00:11:33,660 --> 00:11:34,910 OK. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Kailangan ko bang maghintay ng pitong segundo, dahil hiniling akong tanong. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Kaya ang mga cool na bagay tungkol sa C, at mo nai marahil ay nakaranas ng bago - mo 284 00:11:48,660 --> 00:11:50,260 Maaaring hindi magkaroon, ito ay maaaring maging sa unang pagkakataon. 285 00:11:50,260 --> 00:11:57,030 Ngunit bilang mo ang lahat ng alam, kapag sumulat ako isang bagay sa C, hindi ito i-save tulad ng 286 00:11:57,030 --> 00:11:57,760 ito sa computer. 287 00:11:57,760 --> 00:11:59,440 Ito ay nai-save bilang mga bago at zeroes. 288 00:11:59,440 --> 00:12:02,970 Ito napupunta mula sa C code sa assembly code. 289 00:12:02,970 --> 00:12:09,460 >> Ay nakakita ng kahit sino assembly code bago, assembly code machine? 290 00:12:09,460 --> 00:12:10,630 Titingnan namin sa isang segundo. 291 00:12:10,630 --> 00:12:12,040 Ito napupunta mula sa C code sa assembly code. 292 00:12:12,040 --> 00:12:13,755 At ka guys malaman ang mga baitang ng compilation. 293 00:12:13,755 --> 00:12:17,410 Nagkaroon ka kabisaduhin na para sa pagsusulit isa, at pagkatapos ay isulat ito sa pagsusulit zero. 294 00:12:17,410 --> 00:12:18,240 Karamihan sa mga tao nakuha ko mali. 295 00:12:18,240 --> 00:12:19,760 Sa tingin ko mo guys ipinako ito. 296 00:12:19,760 --> 00:12:22,880 >> Subalit, ikaw guys ay ang pinakamahusay na seksyon para sa mga pagsusulit, sa pamamagitan ng ang paraan. 297 00:12:22,880 --> 00:12:25,210 Alin ang kahanga-hangang. 298 00:12:25,210 --> 00:12:25,910 Hindi ito masakit sa iyo. 299 00:12:25,910 --> 00:12:26,900 Huwag maging nag-aalala. 300 00:12:26,900 --> 00:12:28,800 Ngunit ito ay talagang cool. 301 00:12:28,800 --> 00:12:29,660 Magandang trabaho. 302 00:12:29,660 --> 00:12:32,870 >> Kaya ito ang papunta sa pagpupulong na wika, at pagkatapos ito napupunta sa mga bago at zeroes. 303 00:12:32,870 --> 00:12:35,500 At sana ang mga at zeroes ay naka-save sa computer, at iyon ang naka-save sa 304 00:12:35,500 --> 00:12:38,340 ang a.out, o sa kasong ito, ang executable file. 305 00:12:38,340 --> 00:12:41,040 At ang computer ay nagpapatakbo ng mga bago at zeroes. 306 00:12:41,040 --> 00:12:41,670 Mag-right? 307 00:12:41,670 --> 00:12:43,890 Natutunan namin ang bago. 308 00:12:43,890 --> 00:12:47,490 >> Kaya ang mga cool na bagay ay, ito unsigned ideya, ang ideya ng mga uri ng ints unsigned, 309 00:12:47,490 --> 00:12:50,490 at iba pa, at iba pa, na hanggang dito sa wika C. 310 00:12:50,490 --> 00:12:51,110 Yaong umiiral. 311 00:12:51,110 --> 00:12:53,770 Ngunit huwag umiiral ang uri sa ang mga bago at zeroes. 312 00:12:53,770 --> 00:12:57,110 Mga Uri huwag umiiral kahit na talagang sa antas ng assembly wika. 313 00:12:57,110 --> 00:13:00,075 Kaya iyon ang isang bagay na umiiral sa C mundo ngunit ay hindi umiiral sa computer 314 00:13:00,075 --> 00:13:01,640 mundo o processor mundo. 315 00:13:01,640 --> 00:13:04,660 Iyan ay ilan abstraction na ang C wika ay nagsama, upang gumawa ng aming mga 316 00:13:04,660 --> 00:13:06,240 ang saklaw ng mas madali. 317 00:13:06,240 --> 00:13:09,990 >> Kaya sa katapusan ng araw, ang maaari kong isulat maraming iba't ibang mga bagay dito, at ito 318 00:13:09,990 --> 00:13:10,700 ay hindi gumagawa ng isang pagkakaiba. 319 00:13:10,700 --> 00:13:12,060 Dahil na naroroon lamang sa C mundo. 320 00:13:12,060 --> 00:13:14,100 Hindi ito umiiral sa mga bago at zeroes mundo. 321 00:13:14,100 --> 00:13:17,310 At program ang aming e-execute sa ang mga bago at zeroes mundo. 322 00:13:17,310 --> 00:13:21,170 Kaya malinaw na hindi pa tinatangay ng hangin ang iyong isip ni. 323 00:13:21,170 --> 00:13:22,740 Ngunit sa tingin ko na ay malamig-lamig. 324 00:13:22,740 --> 00:13:23,530 Oo, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> Madla: Kaya, kung sa halip ng paggawa int, gawin mo pansamantalang trabaho. 326 00:13:27,298 --> 00:13:27,770 At ikaw ay - 327 00:13:27,770 --> 00:13:29,311 >> Tagapagsalita: gawin ni ito sa isang seg Hayaan. 328 00:13:29,311 --> 00:13:32,583 >> Madla: Dahil pagkatapos ikaw ay makakuha ng unsigned pagpunta mula sa negatibong 128 sa 329 00:13:32,583 --> 00:13:34,720 127 o 0-255. 330 00:13:34,720 --> 00:13:36,760 >> Tagapagsalita: Kaya pansamantalang trabaho ay may problemang. 331 00:13:36,760 --> 00:13:39,460 Kahit sino Alam ba kung bakit pansamantalang trabaho ay magiging problema, at ito gagawin talaga 332 00:13:39,460 --> 00:13:42,930 baguhin ang mga bagay sa mga bago at zeroes mundo? 333 00:13:42,930 --> 00:13:44,370 >> Madla: Dahil sa laki ng pansamantalang trabaho. 334 00:13:44,370 --> 00:13:46,200 >> Tagapagsalita: Laki ng pansamantalang trabaho ay 1. 335 00:13:46,200 --> 00:13:48,260 Kaya unsigned ay 4 bytes din. 336 00:13:48,260 --> 00:13:50,080 Kaya gusto pansamantalang trabaho tornilyo bagay up. 337 00:13:50,080 --> 00:13:55,660 Ngunit ano ay 4 bytes na na may kaugnayan sa isang pansamantalang trabaho? 338 00:13:55,660 --> 00:13:57,820 O sa na nagdaragdag ng isang karagdagang - 339 00:13:57,820 --> 00:13:59,760 maaari kang maglagay ng isa pang character na pagkatapos ng pansamantalang trabaho. 340 00:13:59,760 --> 00:14:00,200 >> Madla: pansamantalang trabaho bituin. 341 00:14:00,200 --> 00:14:01,220 >> Tagapagsalita: pansamantalang trabaho bituin ay may 4 bytes. 342 00:14:01,220 --> 00:14:02,490 Kaya hayaan gawin ng isang bagay na isang pansamantalang trabaho bituin. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Kaya ito ay marahil gumana, ngunit kami ay pagpunta sa gawin ang isang bagay kahit na 345 00:14:07,240 --> 00:14:09,710 crazier kaysa ito. 346 00:14:09,710 --> 00:14:10,960 Sa aking opinyon, crazier. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Ngayon ko na isinulat ng isang function na nagbabalik isang pointer, at gumugugol ito ng 349 00:14:24,570 --> 00:14:29,480 pointer at isang wala pang kontratang halaga - kami ay baguhin ito pabalik sa int kaya hindi kami 350 00:14:29,480 --> 00:14:31,250 maraming ginagawang mga pagbabago nang sabay-sabay. 351 00:14:31,250 --> 00:14:35,370 At ito ay isang array na tinatawag na, ini-index sa array, at babalik ang 352 00:14:35,370 --> 00:14:35,850 address ng. 353 00:14:35,850 --> 00:14:37,470 Nakita namin ang mga operator na ito bago. 354 00:14:37,470 --> 00:14:43,340 Ito, ano ang sa tingin mo ito ay pagpunta na gawin, sa mga bumabalik, kapag tumakbo ko ito? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Ano ang tingin mo ito ay pagpunta sa gawin? 357 00:14:49,070 --> 00:14:50,320 Anumang guesses? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> Madla: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> Tagapagsalita: Ano? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Iyon ay isang mahusay na hula. 363 00:14:58,520 --> 00:14:59,430 Tom sinasabi ng parehong bagay. 364 00:14:59,430 --> 00:15:02,240 Anumang iba pang mga guesses? 365 00:15:02,240 --> 00:15:05,260 >> Sino sa palagay nito pupuntahan gawin ang parehong bagay? 366 00:15:05,260 --> 00:15:06,510 Sino sa palagay nito pupuntahan segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Ito ang ginagawa ang parehong bagay. 369 00:15:10,230 --> 00:15:11,880 Sorry. 370 00:15:11,880 --> 00:15:13,860 >> Ngunit, siyempre, inilalagay namin sa 1 at 2. 371 00:15:13,860 --> 00:15:16,470 At doon sa kapwa ay wasto, ang tama? 372 00:15:16,470 --> 00:15:19,420 Ni makita Hayaan, maaari naming pumunta sa pangalawang lugar ng isang array. 373 00:15:19,420 --> 00:15:24,010 Ngunit paano kung gumawa kami b isang negatibong numero? 374 00:15:24,010 --> 00:15:26,380 Iyon ay marahil ng isang mas mahusay na hula para sa isang bagay segfaulting. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Pa rin Gumagana ito. 377 00:15:32,260 --> 00:15:35,020 >> OK, ito ay mabaliw ngayon. 378 00:15:35,020 --> 00:15:38,350 Ito ay pare-pareho ng wastong sum function. 379 00:15:38,350 --> 00:15:40,470 Ito ang ginagawa ng parehong eksaktong bagay bilang isang balik at b. 380 00:15:40,470 --> 00:15:44,600 Maaari kahit sino ipaliwanag kung bakit ito ay isang magandang sabihin sa ilang function, o kung bakit ito gumagana? 381 00:15:44,600 --> 00:15:45,850 Ano ang nangyayari dito? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Bakit ito gawin ay ang eksaktong parehong bagay bilang aming lumang kabuuan ng function? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 ano kaya ang nangyari? 386 00:15:58,155 --> 00:16:01,540 >> Madla: Dahil kapag mayroon kang isang isang na ang isang address upang 387 00:16:01,540 --> 00:16:03,950 ang memorya ng lokasyon - 388 00:16:03,950 --> 00:16:07,910 at kapag gumawa ka ng ampersand, ito napupunta sa na memorya address. 389 00:16:07,910 --> 00:16:13,610 At kapag pumunta ka sa b, ikaw ay uri ng umaandar na hakbang mula sa na memory address, 390 00:16:13,610 --> 00:16:15,550 bumabalik ka na. 391 00:16:15,550 --> 00:16:20,083 Kaya ikaw ay tunay, sa katunayan, pagdaragdag ng isang at b [hindi marinig]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Nasaan ang mga karaniwang mga operasyon sa balik na? 394 00:16:26,222 --> 00:16:27,683 Tulad ng, kung saan naihahambing ang mga panaklong mahulog? 395 00:16:27,683 --> 00:16:30,610 Ay ang balik ng address sa isang bago o pagkatapos [hindi marinig]? 396 00:16:30,610 --> 00:16:32,380 >> Tagapagsalita: Ito ay pagpunta sa index sa b - 397 00:16:32,380 --> 00:16:34,430 o index sa isang - at pagkatapos ay ibalik ang address. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, sa gayon ay lahat ng tao maunawaan ano [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 sinabi, at ipinaliwanag, kung bakit ito gumagana? 401 00:16:45,830 --> 00:16:49,430 Ako ay hindi, sa unang pagkakataon ng isang tao ipinaliwanag ito sa akin. 402 00:16:49,430 --> 00:16:51,900 Gusto sinuman nais ang isang larawan upang ipaliwanag ito? 403 00:16:51,900 --> 00:16:55,320 Kami ay pagpunta sa gumuhit ng larawan, na may walang mga marker, mabuti iyan. 404 00:16:55,320 --> 00:16:57,920 Nakahanap ng ilang. 405 00:16:57,920 --> 00:17:03,390 >> Kaya mayroon kaming isang array na isang serye ng mga kahon. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 Ang unang isa ay isang index 0, index 1, 2, 3, 4, tuldok, tuldok, tuldok. 408 00:17:13,710 --> 00:17:15,609 Isang tipikal na array. 409 00:17:15,609 --> 00:17:19,540 At bilang karagdagan sa pagkakaroon ng mga indeks, lahat sila ay may memory address. 410 00:17:19,540 --> 00:17:30,190 Kaya hayaan magbigay ng ito memory address 13, 14, 15, 16, 17, at iba pa. 411 00:17:30,190 --> 00:17:32,490 Bawat tao meron dito sa ngayon. 412 00:17:32,490 --> 00:17:35,810 >> Kaya isang ay isang address. 413 00:17:35,810 --> 00:17:38,850 Ang pangalan ng isang array, isang pointer ay naka-save doon. 414 00:17:38,850 --> 00:17:42,730 Ito ay isang pointer, ito ay isang lokasyon sa memorya, sa simula ng array. 415 00:17:42,730 --> 00:17:45,910 Kaya kung ito ay ang array, isang nais maging isang halaga na 13. 416 00:17:45,910 --> 00:17:49,110 At, siyempre, maaari naming bigyan isang anumang halaga na gusto namin. 417 00:17:49,110 --> 00:17:52,450 Pansamantalang trabaho lagyan ng star ang isang, maaari naming bigyan ng anumang memory address na gusto namin. 418 00:17:52,450 --> 00:17:55,940 Maaari naming bigyan ito ng 0, maaari naming bigyan ito negatibong 1 - negatibong 1 ay hindi umiiral, 419 00:17:55,940 --> 00:17:58,820 nang sa gayon ay marahil problema, ngunit Nakita mo na ito pa rin nagtrabaho. 420 00:17:58,820 --> 00:18:03,070 Kaya maaari naming bigyan ng anumang numero ng gusto namin, anumang memory address na gusto namin. 421 00:18:03,070 --> 00:18:08,720 >> Pagkatapos, int b sabi, OK, pumunta ang numerong ito ng hakbang sa array. 422 00:18:08,720 --> 00:18:13,150 Kaya kung b ay katumbas ng 2, at isang katumbas ng 13, Ikinalulungkot namin sa memory address 13. 423 00:18:13,150 --> 00:18:17,330 At pumunta kami ng dalawang mga hakbang sa, at kaya kami dito. 424 00:18:17,330 --> 00:18:21,150 At ang ampersand ay nangangahulugan na pagbalik ang address ng lokasyong ito. 425 00:18:21,150 --> 00:18:23,990 At ang address, siyempre, 15. 426 00:18:23,990 --> 00:18:28,710 Kaya makuha namin 13 plus 2, o plus b, na 15. 427 00:18:28,710 --> 00:18:29,590 >> Ang tanong ay, kahit na - 428 00:18:29,590 --> 00:18:30,250 Sorry. 429 00:18:30,250 --> 00:18:34,324 Ba na linawin mga bagay para sa kung bakit ito gumagana? 430 00:18:34,324 --> 00:18:36,300 >> Madla: Bakit ito gumagana ng pagpunta - 431 00:18:36,300 --> 00:18:38,770 kaya maaari kang magkaroon ng isang array at pumunta sa isang negatibong index? 432 00:18:38,770 --> 00:18:39,050 >> Tagapagsalita: Mag-right. 433 00:18:39,050 --> 00:18:40,870 Kaya ginawa namin ng mga negatibong numero, kaya iyon ang - 434 00:18:40,870 --> 00:18:42,770 ay ito magkaroon ng kahulugan bagaman, una, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 para sa iyo? 436 00:18:43,120 --> 00:18:48,840 >> Madla: Oo ako lamang [Hindi marinig], ngunit - 437 00:18:48,840 --> 00:18:50,440 >> Tagapagsalita: Oo, ito ay magbabalik 15. 438 00:18:50,440 --> 00:18:53,523 Kung ang isang noon ay 13, at b ay 2, ito ay magbabalik 15. 439 00:18:53,523 --> 00:18:58,160 >> Madla: Kaya ang zero-i-index ay hindi maging isang isyu, tama? 440 00:18:58,160 --> 00:19:00,160 Dahil nagpapalipat-lipat ka mula sa 0. 441 00:19:00,160 --> 00:19:00,470 >> Tagapagsalita: Mag-right. 442 00:19:00,470 --> 00:19:05,000 Kaya nagpapalipat-lipat ka - kaya kung b noon ay 0, hindi mo nais ilipat kahit saan. 443 00:19:05,000 --> 00:19:06,330 At gusto mo lang ibinalik ang address - 444 00:19:06,330 --> 00:19:10,830 kung b noon ay 0, na mahalagang bumabalik na address ng isang. 445 00:19:10,830 --> 00:19:13,960 Pasadong sa pansamantalang trabaho bituin isang at bumabalik na ang address ng isang ay bumabalik lamang, 446 00:19:13,960 --> 00:19:15,860 talaga. 447 00:19:15,860 --> 00:19:18,280 >> OK, ang tanong ay kung bakit gawin negatibong numero gumagana? 448 00:19:18,280 --> 00:19:21,670 At iyon ang talagang cool na bagay tungkol sa na ito, sapagkat ito ay dapat na segfault. 449 00:19:21,670 --> 00:19:25,110 At gusto ito segfault kung namin ginawang isang bagay na katulad nito. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Sabihin nating, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Kaya mukhang magkapareho ang code na ito at dapat kumilos identically. 454 00:19:39,810 --> 00:19:44,550 Mahalaga, x ay isang basura na variable, at kaya ito dapat kumilos identically. 455 00:19:44,550 --> 00:19:46,370 >> Ni gumawa ito Hayaan - 456 00:19:46,370 --> 00:19:47,620 oops - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 sa star. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 OK, mayroon kami nakakakuha ng mga error dito, dahil na-pagpunta sa galit 461 00:20:02,733 --> 00:20:04,610 sa akin, sapagkat ito na alam ng kung ano ang darating. 462 00:20:04,610 --> 00:20:07,060 Sa partikular, ang pangalawang isa. 463 00:20:07,060 --> 00:20:09,800 Address ng isinalansan memory na nauugnay may isang lokal na variable. 464 00:20:09,800 --> 00:20:14,220 >> Mahalaga, hindi ako pupunta upang ipunin ito, at pagkatapos ay pupuntahan ko upang i-undo gawin 465 00:20:14,220 --> 00:20:14,920 kung ano ang ginawa lang namin. 466 00:20:14,920 --> 00:20:19,130 Ngunit dahil kami ay hindi kailanman talaga pag-access sa kung ano ang sa memory 467 00:20:19,130 --> 00:20:21,930 lokasyon, hindi ito ang nangyayari sa segfault. 468 00:20:21,930 --> 00:20:26,450 Hindi kailanman Kami ay talagang aktwal na tumitingin sa kung ano ang sa pangalawang kahon o kung ano ang sa anumang mga kahon 469 00:20:26,450 --> 00:20:28,340 ng array. 470 00:20:28,340 --> 00:20:30,980 Lamang namin sinasabi, narito ang address ng mga bagay kaming naghahanap para sa at 471 00:20:30,980 --> 00:20:32,410 bumalik address na iyon. 472 00:20:32,410 --> 00:20:35,700 Hindi kailanman namin ang aktwal na pagpunta sa array upang tumingin sa lokasyong iyon. 473 00:20:35,700 --> 00:20:39,140 At dahil hindi namin pindutin ang memorya, hindi kami makakuha sa problema. 474 00:20:39,140 --> 00:20:40,760 Hindi kami makakuha ng isang segfault. 475 00:20:40,760 --> 00:20:46,225 >> Kung sinubukan naming i, muli, pindutin na memorya, pindutin kung ano ang sa isang o b - 476 00:20:46,225 --> 00:20:49,940 o isang bracket b, at sa pag-aakala isang noon ay 0 at - 477 00:20:49,940 --> 00:20:53,040 kung ang isang noon ay 0, kahit na, na magiging kaakit-akit masama, dahil hindi namin maaaring pumunta 478 00:20:53,040 --> 00:20:54,090 down na ang lahat ng mga paraan doon. 479 00:20:54,090 --> 00:20:58,250 Kung ang isang at b ay parehong 0, at sinubukan naming i- pindutin kung ano ang doon, pagkatapos kami ay 480 00:20:58,250 --> 00:20:59,110 makipag-problema. 481 00:20:59,110 --> 00:21:02,160 Ngunit kung hindi namin pindutin kung ano ang doon, bumalik lang namin ang address na ito, ito ay 482 00:21:02,160 --> 00:21:08,300 talagang hindi pagpunta sa segfault dahil ito ay nagbibigay-daan magsasagawa ka ng mga operasyon. 483 00:21:08,300 --> 00:21:11,920 Ito lamang ay makakakuha ng galit na galit sa iyo, at ang nakukuha ng sobrang galit, kapag sinubukan mong at pindutin ang 484 00:21:11,920 --> 00:21:15,740 ang aktwal na memorya at bumalik kung ano ang sa na lokasyon memorya. 485 00:21:15,740 --> 00:21:17,690 >> Ba na magkaroon ng kahulugan? 486 00:21:17,690 --> 00:21:24,820 Iyon lang ang mabaliw bahagi ng C. Kaya, mayroon kaming isa higit pa sa mga. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Sino sa palagay na ito ay cool? 489 00:21:29,700 --> 00:21:30,280 Higit pang mga tao. 490 00:21:30,280 --> 00:21:31,070 Iyan ay mabuti. 491 00:21:31,070 --> 00:21:34,860 OK, ito ang aming huling isa. 492 00:21:34,860 --> 00:21:37,314 At Gusto ko mong sabihin sa akin kung o hindi sa tingin mo ito ay pagpunta 493 00:21:37,314 --> 00:21:38,564 upang gawin ang parehong eksaktong bagay. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Mga ako nagsulat pababa sa isang lugar. 496 00:22:07,390 --> 00:22:08,640 Hindi ako memorizing ang mga ito. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Ni makita Hayaan, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Kaya ito ay isang array, ngayon, hindi isang function. 500 00:22:46,670 --> 00:22:49,640 At ito ay isang array dahil mayroon kaming parisukat bracket, hindi kulot tirante. 501 00:22:49,640 --> 00:22:52,360 At ito ay isang array ng kung anong uri? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Sinuman, Hmm? 504 00:22:56,862 --> 00:22:57,694 >> Madla: Ang kanilang hexadecimal numero? 505 00:22:57,694 --> 00:22:59,650 >> Tagapagsalita: Ngunit kung ano ang mga uri ng C? 506 00:22:59,650 --> 00:23:00,710 Ang lahat ay may hexadecimal numero. 507 00:23:00,710 --> 00:23:01,960 Ano ang uri C? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Sinasabi nito sa iyo. 510 00:23:05,480 --> 00:23:07,350 >> Madla: Ito ay unsigned char. 511 00:23:07,350 --> 00:23:09,170 >> Tagapagsalita: Kanan, unsigned char. 512 00:23:09,170 --> 00:23:13,050 At dalawang hexadecimal numero ay isa byte. 513 00:23:13,050 --> 00:23:18,540 Kaya ang mga ito ay 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. 514 00:23:18,540 --> 00:23:21,360 Ito ay isang array ng 9 bytes. 515 00:23:21,360 --> 00:23:25,530 >> OK, marahil na alam ang sagot sa tanong na ito. 516 00:23:25,530 --> 00:23:29,840 Ngunit, ano ang sa tingin mo gagawin mangyari kapag tumatakbo ako nito? 517 00:23:29,840 --> 00:23:34,110 Sinasabi ko, muli, sa mysum.c, Ako na umaasang isang function 518 00:23:34,110 --> 00:23:36,280 na tumatagal ng dalawang integer. 519 00:23:36,280 --> 00:23:40,265 At sa halip ako nagsasabi sum na ay isang hanay ng mga character. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 Ano ang mangyayari kapag Ba akong magpatakbo. / Mysum at gumawa? 522 00:23:48,070 --> 00:23:53,230 >> Well, una, karamihan sa mo gagawin marahil Sumasang-ayon make na - oh hindi, lamang kidding. 523 00:23:53,230 --> 00:23:54,746 What'd gagawin ko mali? 524 00:23:54,746 --> 00:23:55,996 Uh oh. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Iyon ay dapat na kulot tirante. 527 00:24:01,160 --> 00:24:02,790 Iyon ay kung paano mo simulan ang isang array. 528 00:24:02,790 --> 00:24:04,040 Aking masama. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Kaya na nakita natin dati na mga uri ay isang C-level abstraction, hindi isang 531 00:24:11,670 --> 00:24:12,610 antas ng computer na abstraction. 532 00:24:12,610 --> 00:24:16,360 Kaya karamihan ng sa iyo marahil inaasahan ito sa gumawa, o sa pag-aakala na ito gawin. 533 00:24:16,360 --> 00:24:18,680 Ngunit ano kapag tumatakbo ako. / Mysum? 534 00:24:18,680 --> 00:24:19,930 Ano ang mangyayari? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Anumang guesses? 537 00:24:23,422 --> 00:24:25,270 >> Madla: Ito ay pagpunta sa mag-print ng salita. 538 00:24:25,270 --> 00:24:26,310 >> Tagapagsalita: Ito ay pagpunta sa mag-print ng salita. 539 00:24:26,310 --> 00:24:29,335 Ano salita? 540 00:24:29,335 --> 00:24:32,200 >> Madla: [hindi marinig]. 541 00:24:32,200 --> 00:24:33,240 >> Tagapagsalita: Anumang iba pang mga guesses? 542 00:24:33,240 --> 00:24:34,000 OK, mag-print ng isang parirala. 543 00:24:34,000 --> 00:24:35,130 Maaari kang magkaroon ng anumang mga parirala. 544 00:24:35,130 --> 00:24:36,240 Iyon ay magiging iyong bahagi. 545 00:24:36,240 --> 00:24:38,480 Kahit sino na may isang iba't ibang mga hula? 546 00:24:38,480 --> 00:24:39,730 Anna, kung ano ang iyong hula? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> Madla: Makikita ito ng i-print out - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 dalawang titik, o [hindi marinig] isang titik. 551 00:24:49,480 --> 00:24:51,460 >> Tagapagsalita: Isa titik. 552 00:24:51,460 --> 00:24:53,260 >> Madla: Maaari ko bang bilangin kung paano maraming [hindi marinig]? 553 00:24:53,260 --> 00:24:55,426 >> Tagapagsalita: siyam. 554 00:24:55,426 --> 00:24:56,640 Well, ako pagpunta sa patakbuhin ito. 555 00:24:56,640 --> 00:24:58,650 Ito ang ginagawa ng parehong eksaktong bagay. 556 00:24:58,650 --> 00:25:00,190 Nagdadagdag ito ng dalawang mga numero ng magkasama. 557 00:25:00,190 --> 00:25:02,740 Well, pumasa ng dalawang argumento ipaalam. 558 00:25:02,740 --> 00:25:03,710 Hindi ito tumagal ng mga argumento. 559 00:25:03,710 --> 00:25:06,080 Kaya hindi ko alam kung saan ng dati posibleng makakuha ng mga argumento. 560 00:25:06,080 --> 00:25:07,710 Ngunit ni makapasa sa 100 at 0 ipaalam. 561 00:25:07,710 --> 00:25:09,200 At nagdadagdag ito ng 100 at 0. 562 00:25:09,200 --> 00:25:10,220 Iyon ay sira ang bait. 563 00:25:10,220 --> 00:25:12,280 Ako sa tingin kaya. 564 00:25:12,280 --> 00:25:14,480 >> Negatibong 4, na gumagana masyadong. 565 00:25:14,480 --> 00:25:15,650 Maaari kang gumawa ng anumang bagay na gusto mo. 566 00:25:15,650 --> 00:25:17,920 Ito ay isang pantay wastong sum function. 567 00:25:17,920 --> 00:25:19,640 Ito ay isang kabuuan function. 568 00:25:19,640 --> 00:25:21,510 Ngunit, hindi, mo sinasabi na ito isang array ng mga byte. 569 00:25:21,510 --> 00:25:23,570 Kaya kung ano ang nangyayari sa dito? 570 00:25:23,570 --> 00:25:27,240 >> Kaya, muli, sabihin bumalik sa ideyang ito na sinabi namin sa pinakadulo simula. 571 00:25:27,240 --> 00:25:32,050 Pumunta ka mula sa C antas ng code, sa pagpupulong wika, sa mga bago at zeroes. 572 00:25:32,050 --> 00:25:33,050 Ito ay hexadecimal. 573 00:25:33,050 --> 00:25:35,780 Ngunit ito ay talagang lamang ng isang maraming mga bago at zeroes. 574 00:25:35,780 --> 00:25:39,230 Ito ay 72 mga bago at zeroes, tama? 575 00:25:39,230 --> 00:25:40,550 72 mga bago at zeroes. 576 00:25:40,550 --> 00:25:42,160 9 bytes. 577 00:25:42,160 --> 00:25:43,740 Ang bawat byte na may 8 bits. 578 00:25:43,740 --> 00:25:44,760 Ang bawat bit ay isang isa o isang zero. 579 00:25:44,760 --> 00:25:45,920 Kaya 72 mga bago o zeroes. 580 00:25:45,920 --> 00:25:48,780 Lamang ko na nakasulat sa kanila na tulad nito - sa halip na sa pagsusulat ng mga ito bilang ng maraming 581 00:25:48,780 --> 00:25:49,730 mga bago at zeroes. 582 00:25:49,730 --> 00:25:53,560 >> Ngunit ito ay pumunta mula sa C-antas wika, sa pagpupulong 583 00:25:53,560 --> 00:25:54,620 wika, sa code. 584 00:25:54,620 --> 00:25:59,020 At ito ay i-print out sa code, sa isang lugar, ang mga 72 mga bago at zeroes 585 00:25:59,020 --> 00:26:00,910 na na naisulat ko dito. 586 00:26:00,910 --> 00:26:03,610 Kaya sa isang lugar sa na - 587 00:26:03,610 --> 00:26:04,850 ng pumunta dito hayaan - 588 00:26:04,850 --> 00:26:11,240 sa isang lugar sa mysum, sa programa, mayroong ay mga 72 mga bago at zeroes na na hindi ko na 589 00:26:11,240 --> 00:26:14,930 nakasulat at sinabi ito na magsulat. 590 00:26:14,930 --> 00:26:19,331 >> Ngayon, ang anumang mga guesses para sa kung ano ang mga Ibig sabihin 72 mga bago at zeroes? 591 00:26:19,331 --> 00:26:21,240 >> Madla: ang parehong Malamang bagay bilang bumalik ng plus b. 592 00:26:21,240 --> 00:26:22,890 >> Tagapagsalita: ang parehong Malamang bagay bilang bumalik ng plus b. 593 00:26:22,890 --> 00:26:23,730 Ni i-verify na Hayaan. 594 00:26:23,730 --> 00:26:25,210 Ng malaman kung paano ginawa ko ito Hayaan. 595 00:26:25,210 --> 00:26:31,840 >> Kaya kung pumunta ka pabalik dito, sinasabi ko sa inyo upang mapatakbo ang command na ito, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Sabihin pumunta patakbuhin ito. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, tambakan ng basura. 599 00:26:37,990 --> 00:26:39,840 Talaga maaari itong magbigay sa akin kahit anong gusto kong makita. 600 00:26:39,840 --> 00:26:40,840 Maaari itong magbigay sa akin ang wika assembly. 601 00:26:40,840 --> 00:26:42,730 Maaari itong magbigay sa akin ang mga bago at zeroes. 602 00:26:42,730 --> 00:26:43,840 Ito ay may isang tonelada ng mga flag. 603 00:26:43,840 --> 00:26:45,860 Ito ang isa kami ay pagpunta na gagamitin para sa ngayon. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 bilang na nakikita mo sa mga slide - 606 00:26:48,810 --> 00:26:53,840 gitling capital S sabi, makalat, source code - 607 00:26:53,840 --> 00:26:58,410 ang linyang ito ay mula sa C - gamit ang assembly code at may mga bago at zeroes. 608 00:26:58,410 --> 00:27:00,350 At kami ay pagpunta upang tumakbo ito sa sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Dahil ito ay maging mas madaling makita. 610 00:27:01,410 --> 00:27:02,670 Muli - Hmm? 611 00:27:02,670 --> 00:27:04,700 >> Madla: mali ang pagbaybay mo itong mali. 612 00:27:04,700 --> 00:27:05,930 >> Tagapagsalita: Ngunit ako talagang pagpunta sa mga malinaw na ito para sa isang segundo. 613 00:27:05,930 --> 00:27:09,160 Unang pupuntahan ko buksan sumfuntion.o lamang. 614 00:27:09,160 --> 00:27:11,170 >> Madla: mali ang pagbaybay mo ito mali sa unang pagkakataon. 615 00:27:11,170 --> 00:27:12,420 >> Tagapagsalita: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Sum - 618 00:27:15,480 --> 00:27:16,680 na isang matapang na salita, bagaman. 619 00:27:16,680 --> 00:27:19,050 Gusto mo mabigla. 620 00:27:19,050 --> 00:27:21,560 OK, kaya ito ay sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Hindi ko kahit na sabihin sa iyo. 623 00:27:26,220 --> 00:27:30,250 Maraming ng zeroes, malinaw na marami ng zeroes, at mayroong ilang mga iba pang 624 00:27:30,250 --> 00:27:31,930 bagay-bagay na hindi zeroes. 625 00:27:31,930 --> 00:27:33,220 Ngunit karamihan zeroes. 626 00:27:33,220 --> 00:27:35,120 Mukhang mayroong ilang mga bago. 627 00:27:35,120 --> 00:27:36,810 Kaya malinaw, ito ay mahirap basahin. 628 00:27:36,810 --> 00:27:39,320 Iyan ang binary wika. 629 00:27:39,320 --> 00:27:40,710 >> Buksan ito Sabihin ngayon - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 kung ano? 632 00:27:52,350 --> 00:27:53,600 Ano ako paggawa mali? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Ang ibig kong oras ng paggawa ito nang tama? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, ito ay hindi akma. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Kailangan ko isang segundo upang malaman kung ano ang ako ginagawa mali. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Iyon ay isa error. 641 00:28:49,310 --> 00:28:50,560 Iyan ay kakaiba. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Oh, na ang dahilan kung bakit. 644 00:29:01,800 --> 00:29:09,880 >> Pupunta ako upang bumalik sa aming paunang isa, upang maaari naming tingnan ang 645 00:29:09,880 --> 00:29:10,560 sa bagay na code ng ito. 646 00:29:10,560 --> 00:29:13,390 Dahil doon ay hindi talagang pagpunta sa maging anumang bagay kapag naming ilagay lamang ang 647 00:29:13,390 --> 00:29:14,640 mga bago at zeroes in 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 May pumunta namin. 650 00:29:30,200 --> 00:29:32,425 OK, kaya lahat ng tao ang makakakita nito. 651 00:29:32,425 --> 00:29:38,130 Function na ito, tulad ng sinabi ko, ilabas ang C mga linya - 652 00:29:38,130 --> 00:29:39,060 mga linya ng code source - 653 00:29:39,060 --> 00:29:41,000 may ilang mga tagubilin assembly. 654 00:29:41,000 --> 00:29:42,760 >> Heto ang aming source code line. 655 00:29:42,760 --> 00:29:44,910 Narito ang isa, narito ang isa pa. 656 00:29:44,910 --> 00:29:46,540 Narito ang pagtuturo assembly. 657 00:29:46,540 --> 00:29:47,820 Iyon ay kung ano ang hitsura nila tulad ng. 658 00:29:47,820 --> 00:29:49,010 Tagubilin Assembly - 659 00:29:49,010 --> 00:29:51,530 Maaari kang matuto nang higit pa sa mga kung gagawin mo iba pang mga CS mga klase, ngunit ang mga ito ay 660 00:29:51,530 --> 00:29:53,500 sa pangkalahatan ay isang pagtuturo. 661 00:29:53,500 --> 00:29:57,940 At pagkatapos ay isang pinagmulan at patutunguhan. 662 00:29:57,940 --> 00:30:02,740 >> At pagkatapos ay sa paglipas dito ay ang binary code na tumutugon sa na pagpupulong 663 00:30:02,740 --> 00:30:04,940 pagtuturo. 664 00:30:04,940 --> 00:30:09,760 Kaya bilang maaari mong makita, ito sum function, sa pagtatapos ng araw, ay tatlong 665 00:30:09,760 --> 00:30:10,950 assembly mga tagubilin. 666 00:30:10,950 --> 00:30:12,870 Tatlo lamang. 667 00:30:12,870 --> 00:30:14,180 One mov - 668 00:30:14,180 --> 00:30:16,740 ito m-o-v ang ibig sabihin ay isang Ilipat. 669 00:30:16,740 --> 00:30:17,780 Idagdag ang ibig sabihin ay Add. 670 00:30:17,780 --> 00:30:20,440 At r-e-t ang ibig sabihin ay ang Return. 671 00:30:20,440 --> 00:30:22,540 Kaya isa mov, isa add, isa return. 672 00:30:22,540 --> 00:30:27,970 At ang mga, sa paglipas dito, ang mga zeroes at mga bago na tumutugma sa ang code na iyon. 673 00:30:27,970 --> 00:30:31,100 >> Kaya mga zeroes at mga bago, kung ikaw Alam iyon, maaari mo lamang ilagay 674 00:30:31,100 --> 00:30:32,140 mga straight in 675 00:30:32,140 --> 00:30:34,130 At pagkatapos ay magkakaroon ito gawin ang parehong eksaktong bagay. 676 00:30:34,130 --> 00:30:37,260 Dahil, sa pagtatapos ng araw, lahat naka-execute ay isang mahabang serye ng 677 00:30:37,260 --> 00:30:38,480 zeroes at bago. 678 00:30:38,480 --> 00:30:40,700 At iyon ang iyong code ay tunay na. 679 00:30:40,700 --> 00:30:41,770 >> At ang dahilan - 680 00:30:41,770 --> 00:30:43,680 Tingnan natin ang isang bagay hayaan. 681 00:30:43,680 --> 00:30:45,440 Mayroon akong ba ang makefile bukas? 682 00:30:45,440 --> 00:30:48,510 Kaya kung nagpunta kami pabalik sa Dash zero, zero up dito - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 Paumanhin, kabisera o, kabisera o zero, hindi zero, zero. 685 00:30:57,300 --> 00:31:01,810 At namin ginawa, ginagawa ito pa rin gumagana ang parehong. 686 00:31:01,810 --> 00:31:05,420 Ngunit ngayon napansin mo na mayroong isang Marami pang mga tagubilin assembly. 687 00:31:05,420 --> 00:31:09,090 Iyon ay dahil, muli, tinanong ko ang Compiler hindi na gawin ang anumang pag-optimize. 688 00:31:09,090 --> 00:31:12,800 >> Kaya maaari pa ring tumagal ko ang lahat ng mga zeroes at mga bago, at itapon ang mga ito sa, 689 00:31:12,800 --> 00:31:13,390 at na gagana. 690 00:31:13,390 --> 00:31:15,850 Ko lang ang ginawa ng mga pag-optimize, dahil ito ay isang bit mas madali, pagkatapos, 691 00:31:15,850 --> 00:31:17,310 na magsulat na array. 692 00:31:17,310 --> 00:31:19,730 Ngunit ito ay gumagana lamang pati na rin. 693 00:31:19,730 --> 00:31:24,460 >> OK, kami ay pagpunta sa gawin ng isang huling bagay, dahil sa tingin ko ay ang pinakaastig na bahagi. 694 00:31:24,460 --> 00:31:27,410 Kahit na ang lahat ng tao ay malinaw na na tinatangay ng hangin at hindi makapagsalita. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Ang aming mga isip ay tinatangay ng hangin. 697 00:31:31,670 --> 00:31:32,920 [Hindi marinig] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Kaya, ang mga ito ay mula sa ibang CS klase, na kung saan ay napaka-interesante, 700 00:31:51,520 --> 00:31:52,970 na ako kinuha - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Masidhing kong hinihikayat ka upang dalhin ito. 703 00:31:55,910 --> 00:31:58,990 Ngunit ang mga cool na bahagi tungkol sa katotohanan, na bagay ang zeroes lamang at mga bago, 704 00:31:58,990 --> 00:32:01,270 ay na ang lahat ng bagay ay zeroes at bago. 705 00:32:01,270 --> 00:32:05,330 >> Kaya maaari mong gawin ang isang file na may tama zeroes at mga gusto mo 706 00:32:05,330 --> 00:32:10,390 sa isang lugar sa loob nito, at gamitin na seksyon ng zeroes at mga bago bilang isang kabuuan function. 707 00:32:10,390 --> 00:32:11,480 >> Ano ang gagawin ko ibig sabihin sa pamamagitan ng na? 708 00:32:11,480 --> 00:32:15,755 Ibig kong sabihin na maaari mong gawin ang isang file ng imahe na May tamang serye ng zeroes at 709 00:32:15,755 --> 00:32:17,120 mga bago, na mag-print ng isang bagay out para sa larawan. 710 00:32:17,120 --> 00:32:20,070 At isa programa ay maaaring bigyang-kahulugan ay isang larawan, ngunit maaari mong bigyan ng kahulugan nito, kung 711 00:32:20,070 --> 00:32:22,040 gusto mo, bilang isang kabuuan function. 712 00:32:22,040 --> 00:32:27,010 >> Kaya kung gusto naming buksan, para sa Halimbawa, ang larawang ito. 713 00:32:27,010 --> 00:32:37,440 Sabihin pumunta, Kamusta Kitty. 714 00:32:37,440 --> 00:32:38,810 Kahanga-hangang maliit na larawan. 715 00:32:38,810 --> 00:32:42,260 Sa dito doon ay ang string ng zeroes at bago. 716 00:32:42,260 --> 00:32:45,500 Yaong 72 zeroes at mga bago umiiral sa imahe na ito. 717 00:32:45,500 --> 00:32:47,695 >> Kaya kung ano ang maaari kong gawin, at pagkatapos, ay isulat - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Mayroon akong matandaan kung nasaan sila. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Kukunin ko mahanap na sa isang segundo. 722 00:32:55,720 --> 00:32:57,840 Pero ginagawa namin - 723 00:32:57,840 --> 00:32:59,440 hayaan mo akong malaman kung nasaan sila. 724 00:32:59,440 --> 00:33:00,020 One seg. 725 00:33:00,020 --> 00:33:01,270 Ni gawin Hayaan - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> Madla: [hindi marinig]. 728 00:33:07,240 --> 00:33:08,490 >> Tagapagsalita: Salamat. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Kaya kung maisagawa namin ang program na ito, na sa halip bumabasa sa isang file, pagkatapos ito napupunta 731 00:33:28,740 --> 00:33:33,160 upang ito index sa file. 732 00:33:33,160 --> 00:33:35,500 At pagkatapos ay, muli, nais lamang mysum, tumatagal ng dalawang numero. 733 00:33:35,500 --> 00:33:41,410 Maaari naming idagdag ang mga numero ng parehong eksaktong bilang ginagawa namin ang bago, na kung saan ang papunta sa 734 00:33:41,410 --> 00:33:44,850 ipakita sa iyo kung paano ang katotohanan na, sa dulo ng araw, ang lahat ng mga bagay na ito ay 735 00:33:44,850 --> 00:33:45,350 zeroes at bago. 736 00:33:45,350 --> 00:33:48,170 At ito ay lamang kung paano pinili mo upang bigyang-kahulugan ang mga ito. 737 00:33:48,170 --> 00:33:50,770 >> At kung ikaw talaga tumingin sa imahe na ito - 738 00:33:50,770 --> 00:33:52,930 ni-zoom in nang kaunti ipaalam. 739 00:33:52,930 --> 00:33:53,720 Maaari ba lahat ng tao makita ito? 740 00:33:53,720 --> 00:33:57,570 Mapapansin mo dito mismo, mayroong ang ilang mga kakatwang mga mantsa. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Sabihin pumunta - ito ay ang orihinal na larawan. 743 00:34:02,290 --> 00:34:04,540 Mapapansin mo dito walang dungis. 744 00:34:04,540 --> 00:34:08,420 Iyon ay ang code para sa kabuuan function, ay ang maliit na pausukan mula doon. 745 00:34:08,420 --> 00:34:13,449 >> At talagang, muli, kung matuto ka nang higit pa tungkol ito, makikita mo mapagtanto na ito 746 00:34:13,449 --> 00:34:18,270 Kamusta Kitty, na mayroong kahit isang mas malaking mantsa, may code na maaaring tumagal ng higit sa isang 747 00:34:18,270 --> 00:34:21,800 computer kung hindi ito protektado nang naaangkop. 748 00:34:21,800 --> 00:34:23,920 Kaya maaari mong aktwal na patakbuhin ito. 749 00:34:23,920 --> 00:34:25,380 Hindi ako pagpunta sa patakbuhin ito sa ngayon. 750 00:34:25,380 --> 00:34:30,600 Ngunit maaari mong patakbuhin ito Kumusta Kitty imahe, at kaya nito 751 00:34:30,600 --> 00:34:32,429 angkinin ang iyong computer. 752 00:34:32,429 --> 00:34:35,159 >> Kaya na ang lahat para sa demo. 753 00:34:35,159 --> 00:34:38,560 Kahit sino ay may anumang mga katanungan ba, mga komento, mga alalahanin? 754 00:34:38,560 --> 00:34:39,515 Sa tingin ko ang mga bagay na ito ay kamangha-manghang. 755 00:34:39,515 --> 00:34:41,500 Inspirasyon Nag sa akin upang matuto nang higit pa. 756 00:34:41,500 --> 00:34:44,980 Masidhing kong inirerekumendang, kung interesado ka sa lahat sa CS, makipag-usap sa akin. 757 00:34:44,980 --> 00:34:50,250 Kahit na ako ay isang Pag-aaral ng Social Concentrator, Isa akong CS, pangalawa, kaya 758 00:34:50,250 --> 00:34:52,340 Alam ko pa rin kaunti. 759 00:34:52,340 --> 00:34:53,810 Ngunit tiyak kong malaman kung ano klase ang dapat mong gawin. 760 00:34:53,810 --> 00:34:57,940 Sa tingin ko ang lahat ng ito ay talagang kawili-wiling, at hinihikayat ka ko, tiyak, upang 761 00:34:57,940 --> 00:35:00,330 matuto nang higit pa kung interesado ka. 762 00:35:00,330 --> 00:35:02,090 >> OK, mayroon akong isang huling bagay. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Sorry. 765 00:35:05,870 --> 00:35:06,460 Ang anumang mga katanungan? 766 00:35:06,460 --> 00:35:10,010 Hindi ko i-pause upang maghintay kung sinuman Nagkaroon anumang mga katanungan tungkol sa na. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Mawawala na ang sinuman na maging isang CS Concentrator? 769 00:35:16,900 --> 00:35:18,580 O iniisip tungkol dito? 770 00:35:18,580 --> 00:35:20,730 Ang isa, dalawa, tatlo, apat. 771 00:35:20,730 --> 00:35:21,620 Isa - isa lamang. 772 00:35:21,620 --> 00:35:24,680 Anna ay ang tanging kamay na itinaas authoritatively. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, na ay malamig-lamig. 775 00:35:29,390 --> 00:35:30,110 Assam, kung ano ang mo pagpunta sa gawin? 776 00:35:30,110 --> 00:35:33,220 >> Madla: [hindi marinig]. 777 00:35:33,220 --> 00:35:33,910 >> Tagapagsalita: Constantine? 778 00:35:33,910 --> 00:35:34,990 >> Madla: Physics. 779 00:35:34,990 --> 00:35:36,720 >> Tagapagsalita: Whoa, na noon ay mabilis. 780 00:35:36,720 --> 00:35:40,770 Nagkaroon ka ng masamang karanasan sa CS50? 781 00:35:40,770 --> 00:35:42,015 [Hindi marinig], kung ano ang mo pagpunta sa gawin? 782 00:35:42,015 --> 00:35:42,980 >> Madla: Wala akong palagay. 783 00:35:42,980 --> 00:35:43,924 >> Tagapagsalita: Curt? 784 00:35:43,924 --> 00:35:45,900 >> Madla: Econ o CS. 785 00:35:45,900 --> 00:35:46,910 >> Tagapagsalita: Econ o CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> Madla: ako paggawa stat. 788 00:35:48,385 --> 00:35:48,950 >> Tagapagsalita: stat? 789 00:35:48,950 --> 00:35:50,100 OK. 790 00:35:50,100 --> 00:35:51,000 Ano ka? 791 00:35:51,000 --> 00:35:51,310 >> Madla: Akin? 792 00:35:51,310 --> 00:35:51,750 >> Tagapagsalita: Oo. 793 00:35:51,750 --> 00:35:52,190 >> Madla: stat. 794 00:35:52,190 --> 00:35:52,520 >> Tagapagsalita: stat. 795 00:35:52,520 --> 00:35:53,500 Oh, mayroong kang pumunta. 796 00:35:53,500 --> 00:35:55,200 Tom, makipag-usap sa Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, ano ka? 798 00:35:56,932 --> 00:35:57,396 >> Madla: Biomedical - 799 00:35:57,396 --> 00:36:00,178 >> Tagapagsalita: Sigurado ka sa seksyon na ito? 800 00:36:00,178 --> 00:36:03,040 >> Madla: Hindi. 801 00:36:03,040 --> 00:36:04,530 >> Tagapagsalita: OK, na Emily. 802 00:36:04,530 --> 00:36:05,670 Siya ang aking kaibigan. 803 00:36:05,670 --> 00:36:10,080 Malinaw na hindi na mahusay ng isang kaibigan, dahil nagbibigay siya sa akin ng isang hard oras. 804 00:36:10,080 --> 00:36:13,223 Maaari kang maging nicer sa akin sa harap ng lahat, ang aking mga mag-aaral - 805 00:36:13,223 --> 00:36:14,580 >> Madla: ako ginagawa ang iyong gabay Q. 806 00:36:14,580 --> 00:36:14,870 >> Tagapagsalita: talaga? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 OK, ikaw ay kahanga-hangang. 809 00:36:17,224 --> 00:36:19,380 Mahal kita kaya magkano. 810 00:36:19,380 --> 00:36:20,600 Oh batang lalaki. 811 00:36:20,600 --> 00:36:28,320 >> Pa Rin, ako, kagabi, tulad ng lahat ng bagay - 812 00:36:28,320 --> 00:36:32,220 Ako ba na lahat ng tao ay tila talaga stressed ngayon. 813 00:36:32,220 --> 00:36:35,970 Hindi ko alam, hindi presman - ay ka guys pakiramdam stressed? 814 00:36:35,970 --> 00:36:36,855 Pakiramdam ko stressed. 815 00:36:36,855 --> 00:36:37,980 Ito ay tulad ng, pumunta ka sa bahay para sa Thanksgiving. 816 00:36:37,980 --> 00:36:40,660 Ikaw ay tulad, pupuntahan ko gawin ang lahat ng mga bagay na ito. 817 00:36:40,660 --> 00:36:41,530 >> Madla: Ito ay kaya naiiba. 818 00:36:41,530 --> 00:36:42,560 >> Tagapagsalita: Oo, at bumalik ka. 819 00:36:42,560 --> 00:36:45,290 Jeff, hindi mo pakiramdam na paraan? 820 00:36:45,290 --> 00:36:46,610 >> Madla: naisip ko lang Gusto kong gawin kaunti. 821 00:36:46,610 --> 00:36:48,660 >> Tagapagsalita: OK, mahusay. 822 00:36:48,660 --> 00:36:51,650 Kaya dumating ako pabalik, at mayroon akong hindi tapos kahit ano. 823 00:36:51,650 --> 00:36:53,260 At lahat ng ito ay napaka-nakababahalang. 824 00:36:53,260 --> 00:36:55,640 At ako ay nag-aalala, na tunay na nababahala, tungkol sa kung o hindi ako 825 00:36:55,640 --> 00:36:57,380 pagpunta upang matapos ang lahat ng bagay Mayroon akong sa. 826 00:36:57,380 --> 00:37:01,750 Ngunit kagabi, ako ay hindi stressed, Ako ay lamang ng isang maliit na bit malungkot. 827 00:37:01,750 --> 00:37:04,520 Kaya na sinulat ko sa aking journal tungkol sa kung ano ako ay malungkot tungkol sa. 828 00:37:04,520 --> 00:37:08,020 At ako ay malungkot tungkol sa seksyon na ito sa class na ito hinto. 829 00:37:08,020 --> 00:37:11,100 >> Kaya ako ay lamang ng pagpunta sa basahin para sa iyo guys isang maliit na snippet ng aking mga journal, 830 00:37:11,100 --> 00:37:12,950 mula kagabi. 831 00:37:12,950 --> 00:37:17,400 Maaari ba akong makakuha ng ilang mga napkins, ilang tisiyu mula sa Tom? 832 00:37:17,400 --> 00:37:18,040 Hindi, ako pagpunta sa ay sumisigaw. 833 00:37:18,040 --> 00:37:19,720 Hindi ako sumisigaw. 834 00:37:19,720 --> 00:37:22,030 Hindi na hindi mo maaaring ay sumisigaw, Ko lang huwag sumisigaw. 835 00:37:22,030 --> 00:37:24,040 Hindi ko kahit na alam kung ang aking luha glandula ng nagtrabaho - luha ducts. 836 00:37:24,040 --> 00:37:25,630 Hindi ko pa ay sumigaw sa isang mahabang panahon. 837 00:37:25,630 --> 00:37:26,510 >> Madla: [hindi marinig]. 838 00:37:26,510 --> 00:37:28,920 >> Tagapagsalita: OK, salamat. 839 00:37:28,920 --> 00:37:30,070 OK, mayroong isang maliit lagyan ng paunang salita - 840 00:37:30,070 --> 00:37:32,480 mayroong ilang iba pang mga bahagi ng aking journal entry, dahil sinubukan kong journal araw- 841 00:37:32,480 --> 00:37:33,600 gabi bago Nakatanggap ako sa kama. 842 00:37:33,600 --> 00:37:34,900 Masidhing kong inirerekumendang journaling. 843 00:37:34,900 --> 00:37:38,600 Ito ay tumutulong sa iyo iproseso ang mga bagay, at din maging napaka nagpapasalamat ng iyong araw. 844 00:37:38,600 --> 00:37:43,063 At ginagawang ito ng maraming mas madali upang tumingin bumalik sa iyong araw at mapagtanto na 845 00:37:43,063 --> 00:37:44,240 doon ay marami ng magandang mga bagay na nangyari. 846 00:37:44,240 --> 00:37:47,240 Kahit na sa tingin mo ba talagang stressed sa gabi o talagang nakabaligtag, o 847 00:37:47,240 --> 00:37:49,022 talaga malungkot o pagod. 848 00:37:49,022 --> 00:37:50,272 >> Oh, ang aking diyos. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Hindi ko kahit na alam kung ito ay nakasulat na well dahil hindi ako nag-proofread ito. 851 00:37:54,400 --> 00:37:55,780 Ngunit masisiyahan kami basahin ito. 852 00:37:55,780 --> 00:37:59,950 Ako karaniwang hindi basahin ang aking journal, malinaw naman. 853 00:37:59,950 --> 00:38:03,720 >> "Bukas, makikita ko turuan ang aking panghuling CS50 seksyon ng taon. 854 00:38:03,720 --> 00:38:05,860 Ito ay mabaliw kung paano lilipad mabilis na oras. 855 00:38:05,860 --> 00:38:09,900 Ngunit, ako struck sa pamamagitan ng kung paano lamang ng iba't ibang ang aking karanasan sa pagtuturo sa taong ito ay 856 00:38:09,900 --> 00:38:11,365 kaysa sa kapag ako ay isang sopomor. 857 00:38:11,365 --> 00:38:14,120 Para sa starters, ako siguradong alam ang materyal mas mahusay. 858 00:38:14,120 --> 00:38:16,820 Ngunit huwag sabihin sa aking unang pangkat ng mga mag-aaral na iyon. 859 00:38:16,820 --> 00:38:20,030 Mas mahalaga, gayunpaman, ako na maisasakatuparan na ang kagalakan na nagmumula sa standing 860 00:38:20,030 --> 00:38:23,160 up sa harap ng isang silid ng kung ano ay nagsisimula out bilang mga estranghero, ngunit nagtatapos up bilang, sa 861 00:38:23,160 --> 00:38:27,150 hindi bababa sa, mga kaibigan sa Facebook, ay hindi isang unang-taong parasitiko. 862 00:38:27,150 --> 00:38:29,970 Sa halip, ito ay mula sa pag-alam na, sa ilang maliit na paraan, ikaw ay pagtulong 863 00:38:29,970 --> 00:38:32,980 may ulo, maalalahanin, kagiliw-giliw, at makabagbag-puso tao matuto pa ng kaunti 864 00:38:32,980 --> 00:38:34,750 tungkol sa computer science. 865 00:38:34,750 --> 00:38:37,480 >> Ikaw ay nagbabago na ilaw bombilya lamang bit sa socket nito, upang hindi na ito nagagawa 866 00:38:37,480 --> 00:38:42,120 upang Shine mas maliwanag kaysa sa iyo, o nila, sana naisip sa simula semestre. 867 00:38:42,120 --> 00:38:45,390 Tumutulong kang i mga frowns baligtad down at pagtatanong na 868 00:38:45,390 --> 00:38:49,240 magbigay ng suporta, ngunit payagan pa rin mag-aaral na tumayo sa kanilang sariling. 869 00:38:49,240 --> 00:38:52,190 >> Ito ay tiyak na hindi isang pagmamalabis sa sabihin na ang seksyon na ito ay ang aking mga paboritong 870 00:38:52,190 --> 00:38:53,190 bahagi ng linggo. 871 00:38:53,190 --> 00:38:57,930 O kahit na mag-alinlangan kong sabihin, na lahat, sa 05:30 sa bawat linggo, ang pag-alam 872 00:38:57,930 --> 00:39:00,640 na kailangan itong maging paraan masyadong mahaba hanggang sa matugunan namin muli. 873 00:39:00,640 --> 00:39:02,740 >> Ngunit, ako hindi mapaniniwalaan o kapani-paniwala nagpapasalamat sa lahat ng tao kung sino ang naibigay na sa akin ito 874 00:39:02,740 --> 00:39:05,010 pagkakataon upang bigyan pabalik sa iba. 875 00:39:05,010 --> 00:39:07,340 Upang David, para sa kanyang pasensya at tiwala. 876 00:39:07,340 --> 00:39:11,040 Upang ang pelikula at production crew, para sa paggawa sa akin tumingin medyo kagalang-galang. 877 00:39:11,040 --> 00:39:15,380 At, pinaka-mahalaga, sa aking mga mag-aaral, walang kanino Gusto ko ay walang dahilan upang 878 00:39:15,380 --> 00:39:17,890 gumastos ng 10 na oras ang pag-uunawa ang pinakamahusay na paraan upang gumuhit ng mga payo, o itabi ang isang 879 00:39:17,890 --> 00:39:20,330 talaan ng mga dolphin, sa pamamagitan ng JavaScript. 880 00:39:20,330 --> 00:39:22,620 Gaya ng lagi, ito ay naging isang pagpapala. " 881 00:39:22,620 --> 00:39:25,420 >> Kaya may mga iyon, salamat guys. 882 00:39:25,420 --> 00:39:29,000 Kukunin ko na nakikita mo ang lahat sa CS50 makatarungan, at ang hackathon, kung nandoon ka. 883 00:39:29,000 --> 00:39:32,020 At kung mayroon kang mga katanungan, magpapadala ako manatili sa paligid hanggang sa wala nang higit pa. 884 00:39:32,020 --> 00:39:33,760 Ngunit salamat ko sa inyo guys para sa isang kahanga-hanga taon. 885 00:39:33,760 --> 00:39:37,290 >> [Palakpakan] 886 00:39:37,290 --> 00:39:38,540 >> Tagapagsalita: Maaaring ay sumisigaw ako. 887 00:39:38,540 --> 00:39:40,800