1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> СПІКЕР: Добра, такім чынам, вы не паверыце, але на мінулым тыдні, у панядзелак, у Пірс, я 3 00:00:15,180 --> 00:00:16,090 быў у склепе. 4 00:00:16,090 --> 00:00:17,010 Я ніколі не іду ў Pierce. 5 00:00:17,010 --> 00:00:20,530 І я ніколі не вяртацца зноў, таму што Я пакінуў свае рэчы ў спакоі, 6 00:00:20,530 --> 00:00:23,950 як, пяць хвілін і хтосьці скраў мой кампутар і мае 7 00:00:23,950 --> 00:00:26,050 тэлефон з майго заплечніка. 8 00:00:26,050 --> 00:00:28,780 А гэта значыць, я атрымаў яго назад, і затым менш праз тыдзень 9 00:00:28,780 --> 00:00:30,220 гэта зноў скралі. 10 00:00:30,220 --> 00:00:31,570 >> А потым ён атрымаў уключаны - 11 00:00:31,570 --> 00:00:34,540 Find My iPhone працягвае быць бескарысным. 12 00:00:34,540 --> 00:00:37,340 Так што я і надалей заахвочваць Вы не выкарыстоўваць яго. 13 00:00:37,340 --> 00:00:42,270 Аказалася на адзін раз, і гэта было ў Масачусецкім тэхналагічным інстытуце, як 15 хвілін праз, і чалавек 14 00:00:42,270 --> 00:00:45,770 назваў гэта тэлефонны нумар, які паказаў ў маім AT & T часопіса выклікаў. 15 00:00:45,770 --> 00:00:48,830 >> Так што я пайшоў у Інтэрнэце, называецца, што тэлефон лік, і гэта пайшло прама ў гэты 16 00:00:48,830 --> 00:00:50,540 аўтаадказчык на іспанскай мове. 17 00:00:50,540 --> 00:00:52,520 І я не чуў пра яго з тых часоў. 18 00:00:52,520 --> 00:00:54,800 Так што я павінен быў атрымаць новы Кампутар і тэлефон. 19 00:00:54,800 --> 00:00:55,150 Я ведаю. 20 00:00:55,150 --> 00:00:56,326 Так. 21 00:00:56,326 --> 00:01:00,110 Але калі вы, хлопцы, жадаеце скінуцца, каб мой кампутар фонд пасля гэтага, вось чаму 22 00:01:00,110 --> 00:01:01,030 Я запрасіў вас сюды. 23 00:01:01,030 --> 00:01:02,280 Жартую. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Але гэта было сапраўды сумна і траўматычны. 26 00:01:07,420 --> 00:01:10,700 >> Але гэта ўсё таму зараз, і менавіта таму р-набор 8 так доўга, таму што 27 00:01:10,700 --> 00:01:12,480 У мяне не было кампутара. 28 00:01:12,480 --> 00:01:13,730 І нехта скраў яго. 29 00:01:13,730 --> 00:01:16,940 І я па электроннай пошце, з просьбай, калі яны ацаніў бы ваша п-набор 8. 30 00:01:16,940 --> 00:01:18,790 Але яны сказалі няма. 31 00:01:18,790 --> 00:01:20,000 І я падумала: я магу ёсць мой кампутар назад? 32 00:01:20,000 --> 00:01:21,270 І яны накшталт, няма. 33 00:01:21,270 --> 00:01:22,130 Жартую. 34 00:01:22,130 --> 00:01:22,930 >> ОК. 35 00:01:22,930 --> 00:01:28,140 Гэта наш апошні раздзел, і ў мяне ёсць пару - у нас ёсць толькі тры 36 00:01:28,140 --> 00:01:29,790 рэчы на ​​парадку дня. 37 00:01:29,790 --> 00:01:31,330 Мы збіраемся пагаварыць трохі аб Q кіраўніцтва. 38 00:01:31,330 --> 00:01:33,900 Тады мы збіраемся правесці 15 хвілін на прахалодным дэма. 39 00:01:33,900 --> 00:01:36,890 Тады мы збіраемся ўсе кажуць да пабачэння адзін з адным. 40 00:01:36,890 --> 00:01:41,460 Вы сапраўды не патрэбны вашы кампутары або ручку або папера для нататак, або 41 00:01:41,460 --> 00:01:42,410 сачыць разам. 42 00:01:42,410 --> 00:01:45,620 Так што я мяркую, калі ў вас ёсць кампутар уверх, то вы знаходзіцеся на Facebook. 43 00:01:45,620 --> 00:01:46,530 Проста кажу. 44 00:01:46,530 --> 00:01:49,650 Калі вы не запоўніўшы Пытанне кіраўніцтва, якое ў першую чаргу. 45 00:01:49,650 --> 00:01:50,690 >> Пытанне кіраўніцтва адкрыты. 46 00:01:50,690 --> 00:01:53,520 У вас быў ліст пра гэта. 47 00:01:53,520 --> 00:01:56,930 Пасля таго як усе Q матэрыял уяўляецца ў Канец года, я атрымліваю ўсё 48 00:01:56,930 --> 00:02:03,710 Q каментары ў балаў ад усіх хто хоча даць мне зваротную сувязь. 49 00:02:03,710 --> 00:02:04,810 І таму, калі вы ідзяце ў Q - 50 00:02:04,810 --> 00:02:07,440 Я не ведаю, калі вы можаце зрабіць гэта, Джэф, таму што ты і пашырэнне студэнт. 51 00:02:07,440 --> 00:02:12,730 Але калі вы ідзяце ў Q, калі ў вас значыць не зрабілі гэта раней, вы выбіраеце ваш 52 00:02:12,730 --> 00:02:14,020 настаўнік, які з'яўляецца Дэвід Малан. 53 00:02:14,020 --> 00:02:14,970 Вы павінны зрабіць яго. 54 00:02:14,970 --> 00:02:15,690 >> І тады вы можаце выбраць TFS. 55 00:02:15,690 --> 00:02:17,750 І вы можаце выбраць, як многія ТФ, як вы хочаце. 56 00:02:17,750 --> 00:02:18,990 Але ёсць 60 з нас. 57 00:02:18,990 --> 00:02:20,350 Вы не павінны выбраць ўсіх. 58 00:02:20,350 --> 00:02:23,090 Вы можаце проста забраць мяне, ці проста выбраць пара іншых людзей, калі вы хочаце, каб 59 00:02:23,090 --> 00:02:24,470 даць ім зваротную сувязь, а таксама. 60 00:02:24,470 --> 00:02:27,595 І тады вы атрымаеце балы на ўсё гэта розных восяў, а затым вы можаце пакінуць 61 00:02:27,595 --> 00:02:28,570 іх уздзеяння. 62 00:02:28,570 --> 00:02:31,520 >> А потым, як праз месяц, Я атрымаю ўсё, што зваротная сувязь. 63 00:02:31,520 --> 00:02:34,570 І гэтак жа, як зваротнай сувязі вы былі даючы мне на працягу семестра, я 64 00:02:34,570 --> 00:02:35,790 чытаць усё гэта. 65 00:02:35,790 --> 00:02:39,620 І гэта сапраўды карысна, і гэта дапамагае мне вырасці як настаўнік і як 66 00:02:39,620 --> 00:02:40,680 індывідуальны. 67 00:02:40,680 --> 00:02:43,360 Так што, калі ласка, не пашкадуйце часу, каб зрабіць гэта. 68 00:02:43,360 --> 00:02:45,020 Мы толькі збіраемся быць тут для, як, 30 хвілін. 69 00:02:45,020 --> 00:02:48,090 Так што калі вы хочаце, у канцы гэтага, у заняць пяць хвілін, і проста запоўніць 70 00:02:48,090 --> 00:02:49,960 Пытанне, таму што гэта не зойме больш часу, чым гэта. 71 00:02:49,960 --> 00:02:53,410 Гэта было б вельмі добра, і вы таксама атрымаць свае ацэнкі назад хутчэй, калі 72 00:02:53,410 --> 00:02:54,620 Вы запаўняеце Q. 73 00:02:54,620 --> 00:02:56,580 >> Так што большасць з вас зрабілі гэта раней - 74 00:02:56,580 --> 00:02:58,240 ці не, каля паловы з вас зрабілі гэта раней. 75 00:02:58,240 --> 00:03:00,060 Але калі вы пачатковец, вось што гэта такое. 76 00:03:00,060 --> 00:03:01,910 Гэта будзе тое ж самае для ўсіх класаў. 77 00:03:01,910 --> 00:03:02,270 Зрабіце гэта. 78 00:03:02,270 --> 00:03:02,900 Гэта зойме пяць хвілін. 79 00:03:02,900 --> 00:03:07,610 А акрамя таго, калі вы робіце гэта крыху цяжка, гэта не самае горшае 80 00:03:07,610 --> 00:03:10,270 у свеце, таму што я, вядома, паставіцца да гэтага сур'ёзна. 81 00:03:10,270 --> 00:03:13,000 >> Так што, калі вы выходзіце мне смайлік, Я цаню гэта. 82 00:03:13,000 --> 00:03:17,550 Але я б таксама ўдзячныя, калі Вы пакінуў мяне больш смайлік. 83 00:03:17,550 --> 00:03:18,270 Але гэта залежыць ад вас. 84 00:03:18,270 --> 00:03:21,540 Я не магу сказаць вам - ці як вялікі смайлік асобе, з вялікай літары Д. Гэта было б 85 00:03:21,540 --> 00:03:23,060 быць яшчэ лепш. 86 00:03:23,060 --> 00:03:27,860 >> Добра, гэта ўсё, што я для Q. Калі вы ёсць якія-небудзь пытанні, вы можаце задаць 87 00:03:27,860 --> 00:03:29,370 мяне, але вельмі мае патрэбу ў тлумачэннях. 88 00:03:29,370 --> 00:03:31,090 Проста, калі ласка, запоўніце яе. 89 00:03:31,090 --> 00:03:34,390 Я б вельмі ўдзячны, і гэта вельмі шмат значыць для мяне. 90 00:03:34,390 --> 00:03:38,910 >> ОК, гэта тое, што мы збіраемся выдаткаваць 15 хвілін перажывае. 91 00:03:38,910 --> 00:03:39,800 Я збіраюся паказаць вам код. 92 00:03:39,800 --> 00:03:42,080 Я думаю, гэта сапраўды выдатна, і гэта прымусіла мяне больш 93 00:03:42,080 --> 00:03:43,810 ўзбуджаецца ў галіне кампутарных навук. 94 00:03:43,810 --> 00:03:46,480 Так што я спадзяюся, што гэта будзе рабіць ж для ўсіх вас. 95 00:03:46,480 --> 00:03:51,760 >> Мы збіраемся адчыніць - і ўсё гэта Код я пашлю да вас пазней. 96 00:03:51,760 --> 00:03:52,680 Але мы толькі збіраемся адчыніць - 97 00:03:52,680 --> 00:03:54,310 Я ў маім тэрмінале - 98 00:03:54,310 --> 00:03:56,810 мы збіраемся адкрыць гэтую праграму называецца [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Ці ўсё могуць чытаць гэта, або я павінен зрабіць яго больш? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Хто-небудзь можа сказаць мне, што гэты код будзе рабіць, калі я запускаю яго, або тое, што гэта 103 00:04:13,040 --> 00:04:14,320 Праграма будзе рабіць, калі я яго запусціць? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Аві,?] Што вы думаеце ён збіраецца рабіць? 106 00:04:32,400 --> 00:04:33,335 Аздабленне жавальнай. 107 00:04:33,335 --> 00:04:35,033 Вы не павінны гаварыць з ваш рот адкрытым. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> АЎДЫТОРЫЯ: Ці значыць гэта ўзяць кучу аргументы, знайсці суму іх вяртаюцца 110 00:04:42,860 --> 00:04:45,285 сума, а затым раздрукаваць яго? 111 00:04:45,285 --> 00:04:53,045 Ці ён прымае ў двух аргументаў, і Затым ён робіць [неразборліва]. 112 00:04:53,045 --> 00:04:56,460 А потым ён друкуе ўсё, што вынікі. 113 00:04:56,460 --> 00:04:58,100 >> СПІКЕР: Зачыніць, вельмі блізка. 114 00:04:58,100 --> 00:04:59,840 Хто-небудзь хоча дадаць у [? што Аві?] сказаў? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Вы павінны даць гэтую праграму любыя аргументы каманднага радка? 117 00:05:07,293 --> 00:05:09,145 >> АЎДЫТОРЫЯ: Не. 118 00:05:09,145 --> 00:05:09,610 >> СПІКЕР: Не. 119 00:05:09,610 --> 00:05:11,250 Што адбудзецца, калі вы не даць яму любыя аргументы каманднага радка? 120 00:05:11,250 --> 00:05:12,500 Я проста пішу кропка слэш MySum. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> АЎДЫТОРЫЯ: 1 плюс 2 роўна 3. 123 00:05:16,630 --> 00:05:17,250 >> СПІКЕР: 1 плюс 2 роўна 3. 124 00:05:17,250 --> 00:05:18,570 І гэта будзе друкаваць гэта. 125 00:05:18,570 --> 00:05:19,450 Вось менавіта. 126 00:05:19,450 --> 00:05:21,370 Вы ўбачыце, што друк е Радок у ніжняй. 127 00:05:21,370 --> 00:05:23,450 Гэта будзе раздрукаваць A, B, і то сума а і Коммерсанта. 128 00:05:23,450 --> 00:05:26,360 І я думаю, вы мяркуеце, што сума працуе правільна. 129 00:05:26,360 --> 00:05:28,120 Добра здагадку. 130 00:05:28,120 --> 00:05:32,250 >> Добра, а што адбудзецца, калі я даць яму тое, што аргумент? 131 00:05:32,250 --> 00:05:33,010 [? Ману? ?] 132 00:05:33,010 --> 00:05:36,230 >> АЎДЫТОРЫЯ: Гэта будзе дадаць любыя Першы аргумент з'яўляецца б. 133 00:05:36,230 --> 00:05:37,150 Або да 2, прабачце. 134 00:05:37,150 --> 00:05:38,480 >> СПІКЕР: справа, да 2. 135 00:05:38,480 --> 00:05:42,470 Хто-небудзь ведае, што strtol робіць? 136 00:05:42,470 --> 00:05:43,960 Гэта ў асноўным atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi на самай справе мудрагелістае версія - 138 00:05:47,240 --> 00:05:49,600 або больш просты варыянт strtol. 139 00:05:49,600 --> 00:05:51,790 Але гэта на самай справе выкарыстоўвае strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 І я выявіў, што, таму што я хацеў нешта накшталт atoi, а затым, калі я 142 00:05:58,010 --> 00:06:01,110 зрабіў atoi, я чытаў тут. 143 00:06:01,110 --> 00:06:04,380 І я знайшоў "такія паводзіны такі ж, як "strtol. 144 00:06:04,380 --> 00:06:06,850 Так што гэта ў асноўным atoi для ва ўсіх адносінах. 145 00:06:06,850 --> 00:06:09,320 І вы бачыце, я нават выкарыстоўваць страціўшым 10. 146 00:06:09,320 --> 00:06:14,390 >> Гэта на самай справе дазваляе ўзяць радок, і ператварыць яго ў шэрагу, і абярыце 147 00:06:14,390 --> 00:06:15,970 якой базавы вы хочаце зрабіць яго цалі 148 00:06:15,970 --> 00:06:17,370 Так што гэта падстава 10 прама тут. 149 00:06:17,370 --> 00:06:20,455 Я мог бы зрабіць падстава два для дзесятковай, падстава 16 для шаснаццатковай. 150 00:06:20,455 --> 00:06:22,090 Гэта вельмі выдатна. 151 00:06:22,090 --> 00:06:25,860 Але Карацей кажучы, гэта займае два колькасці і складае іх. 152 00:06:25,860 --> 00:06:29,260 >> Так што давайце запусціць яго. 153 00:06:29,260 --> 00:06:32,560 І вы таксама заўважыце, што некаторыя рэчы - 154 00:06:32,560 --> 00:06:37,830 таму ў мяне Makefile прама тут, і Калі вы адкрыеце, што да, некаторыя рэчы 155 00:06:37,830 --> 00:06:39,270 Вы заўважыце, розныя. 156 00:06:39,270 --> 00:06:42,370 У прыватнасці, гэты аргумент прама тут, вы, верагодна, 157 00:06:42,370 --> 00:06:43,010 не бачыў, што раней. 158 00:06:43,010 --> 00:06:45,770 Як правіла, мы збіраем рэчы з працяжнік нуль, нуль. 159 00:06:45,770 --> 00:06:51,500 Даш нуль, нуль, значыць, не робяць любая аптымізацыя, кампілятар. 160 00:06:51,500 --> 00:06:54,950 Не спрабуйце зрабіць што-небудзь мяркуе, або нічога зрабіць хутчэй бегаць, ці атрымаць 161 00:06:54,950 --> 00:06:56,530 пазбавіцца ад зменных, якія неабходныя. 162 00:06:56,530 --> 00:06:58,080 Ня аптымізаваць гэты код на ўсіх, 163 00:06:58,080 --> 00:07:00,110 >> Я прашу трэцяга ўзроўню аптымізацыя. 164 00:07:00,110 --> 00:07:02,580 Вось я і пытаюся кампілятар рабіць шмат аптымізацый. 165 00:07:02,580 --> 00:07:05,870 Вы можаце змяніць гэта ў Makefile, калі ў вас ёсць гэты код, калі вы хочаце 166 00:07:05,870 --> 00:07:07,190 каб убачыць розныя рэчы. 167 00:07:07,190 --> 00:07:08,660 Якія мы пакажам у секунду. 168 00:07:08,660 --> 00:07:12,080 Такім чынам, мы запусціць свой суму 1 плюс 2 плюс 3. 169 00:07:12,080 --> 00:07:13,445 Хтосьці даў мне два аргументу. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> АЎДЫТОРЫЯ: 4 і 5. 172 00:07:18,210 --> 00:07:18,966 >> СПІКЕР: 4 і 5. 173 00:07:18,966 --> 00:07:19,900 Дзякуй. 174 00:07:19,900 --> 00:07:20,860 Выдатна, гэта працуе. 175 00:07:20,860 --> 00:07:25,700 Якія іншыя важкія аргументы паспрабаваць, каб пераканацца, што гэта працуе? 176 00:07:25,700 --> 00:07:27,050 Любы? 177 00:07:27,050 --> 00:07:27,430 >> АЎДЫТОРЫЯ: 0. 178 00:07:27,430 --> 00:07:29,210 >> СПІКЕР: 0 і? 179 00:07:29,210 --> 00:07:31,010 >> АЎДЫТОРЫЯ: Адмоўны 3. 180 00:07:31,010 --> 00:07:32,040 >> СПІКЕР: Ён працуе. 181 00:07:32,040 --> 00:07:33,670 Але гэта былі добрыя выбары. 182 00:07:33,670 --> 00:07:36,600 Такім чынам, давайце вернемся сюды. 183 00:07:36,600 --> 00:07:38,540 Гэта mysum.c. 184 00:07:38,540 --> 00:07:42,440 Вы заўважыце, ёсць таксама сёе-тое называецца sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 І гэта кажа, о, ёсць што-то вызначаны ў sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 Я не ўключыць гэты файл тут таму што я не трэба. 187 00:07:51,480 --> 00:07:54,840 Але я звязаць яго, калі я кампіляцыі, якія вы заўважылі. 188 00:07:54,840 --> 00:07:57,380 >> Давайце пракруткі ўверх. 189 00:07:57,380 --> 00:08:02,880 Мы бачылі, калі мы склалі mysum, права там, мы звязаны ў двайковым ад 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 І мне не трэба файл загалоўка таму што, вядома, ёсць 193 00:08:08,470 --> 00:08:09,240 Аб'яву функцыі. 194 00:08:09,240 --> 00:08:12,200 Гэтак рэзкае ўключаюць звычайна проста ставіць ў аб'яве функцыі. 195 00:08:12,200 --> 00:08:13,730 Тут я проста пакласці яго прама у кодзе. 196 00:08:13,730 --> 00:08:16,370 І таму мне трэба зрабіць, гэта спасылка у бінарны файл, які я раблю. 197 00:08:16,370 --> 00:08:19,950 >> Любыя здагадкі на тое, што у sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Які код я напісаў у sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> АЎДЫТОРЫЯ: [неразборліва]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> СПІКЕР: Любыя здагадкі? 203 00:08:30,630 --> 00:08:30,940 Да? 204 00:08:30,940 --> 00:08:33,710 >> Залы: Я думаю, вызначае некаторыя [неразборліва]. 205 00:08:33,710 --> 00:08:33,975 >> СПІКЕР: Так. 206 00:08:33,975 --> 00:08:37,650 Так што я на запіс дзесятковага суму унутр. 207 00:08:37,650 --> 00:08:41,120 Я пішу гэтую лінію, а затым у мяне адкрыты фігурная дужка, зачыненыя фігурную дужку. 208 00:08:41,120 --> 00:08:46,160 Што вы думаеце я пішу ў тых фігурныя дужкі, ўнутры гэтай функцыі? 209 00:08:46,160 --> 00:08:46,600 Да? 210 00:08:46,600 --> 00:08:48,150 >> АЎДЫТОРЫЯ: Вярнуцца роўна. 211 00:08:48,150 --> 00:08:50,010 >> Працэсар: Гэта сапраўды добрае здагадку. 212 00:08:50,010 --> 00:08:51,720 Хто думае [? Ману?] Правоў? 213 00:08:51,720 --> 00:08:54,122 У ім гаворыцца, вяртаюць плюс б. 214 00:08:54,122 --> 00:08:55,860 Добра, не ўсё. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 вы таксама? 217 00:08:57,390 --> 00:09:00,430 Вы ўпэўненыя? 218 00:09:00,430 --> 00:09:01,680 ОК. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Што? 221 00:09:10,050 --> 00:09:11,662 >> АЎДЫТОРЫЯ: Вы выразна гэта не так. 222 00:09:11,662 --> 00:09:13,000 >> СПІКЕР: Не, я гэтага не зрабіў. 223 00:09:13,000 --> 00:09:13,966 Так, жартую. 224 00:09:13,966 --> 00:09:15,300 Вы маеце рацыю. 225 00:09:15,300 --> 00:09:15,930 Гэта менавіта тое, што ён кажа. 226 00:09:15,930 --> 00:09:17,110 Гэта вяртае плюс б. 227 00:09:17,110 --> 00:09:18,570 Гэта робіць шмат сэнсу. 228 00:09:18,570 --> 00:09:20,240 >> Добра, давайце вернемся тут. 229 00:09:20,240 --> 00:09:21,490 Мы бачым, як загаловак - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 вось які вяртаецца тып. 232 00:09:25,660 --> 00:09:29,100 Памятаеце, што мы бачылі ў той дзень адзін, тып якое вяртаецца значэння функцыі, але ідзе 233 00:09:29,100 --> 00:09:30,160 перад імем функцыі дзесятковага. 234 00:09:30,160 --> 00:09:31,560 Вось, я напісаў Int. 235 00:09:31,560 --> 00:09:35,680 Што вы думаеце, што адбудзецца, калі ў гэтым Функцыя, я не пішу Int, але 236 00:09:35,680 --> 00:09:38,270 Я пішу без знака? 237 00:09:38,270 --> 00:09:41,050 Розніца, вядома, у тым, што без знака ўяўляе толькі станоўчыя 238 00:09:41,050 --> 00:09:43,620 цэлыя лікі, і унутр можа быць станоўчым або адмоўным. 239 00:09:43,620 --> 00:09:45,450 >> Так я змяніў вяртанне тып гэтай функцыі. 240 00:09:45,450 --> 00:09:49,370 Гэты код не супадае з гэта вяртанне увядзіце тут. 241 00:09:49,370 --> 00:09:50,925 Што вы думаеце, што адбудзецца пры кампіляцыі? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Вы павінны крычаць на мяне. 244 00:09:56,240 --> 00:09:57,700 Няма крыкі. 245 00:09:57,700 --> 00:10:00,050 >> А калі я запускаю праграму? 246 00:10:00,050 --> 00:10:05,810 Давайце зробім да 0 Negative 3 ці адмоўны 1. 247 00:10:05,810 --> 00:10:10,180 Ён па-ранейшаму працуе, хоць я кажу ён вяртае цэлы лік без знака. 248 00:10:10,180 --> 00:10:12,060 Відавочна, што гэта не вяртанне Цэлы лік без знака. 249 00:10:12,060 --> 00:10:13,520 Гэта вяртае цэлы лік са знакам. 250 00:10:13,520 --> 00:10:16,130 Гэта вяртанне негатыўнае 1. 251 00:10:16,130 --> 00:10:17,830 ОК, гэта дзіўна. 252 00:10:17,830 --> 00:10:27,030 >> Што, калі я іду ў тут і рабіць, што? 253 00:10:27,030 --> 00:10:29,700 Так што я змяніў ўсё ад унутр каб без знака. 254 00:10:29,700 --> 00:10:31,590 Гэта можа заняць толькі цэлыя лікі без знака. 255 00:10:31,590 --> 00:10:33,840 Але мы да гэтага часу думаю, што гэта працаваць? 256 00:10:33,840 --> 00:10:35,652 >> АЎДЫТОРЫЯ: Так. 257 00:10:35,652 --> 00:10:37,270 >> СПІКЕР: Будзе. 258 00:10:37,270 --> 00:10:39,410 Гэта вар'яцтва. 259 00:10:39,410 --> 00:10:43,140 І мы пераходзім у дакладна размеркаваны цэлы лік, мы можам перадаць два падпісалі 260 00:10:43,140 --> 00:10:46,280 цэлы лік, ён усё яшчэ працуе. 261 00:10:46,280 --> 00:10:52,150 >> OK, любыя ідэі, чаму ён усё яшчэ працуе, або тое, што адбываецца? 262 00:10:52,150 --> 00:10:53,368 Так, Джэф. 263 00:10:53,368 --> 00:10:56,296 >> АЎДЫТОРЫЯ: Гэта мае нейкае дачыненне да з аптымізацыяй, што вы 264 00:10:56,296 --> 00:10:57,760 вылучаныя. 265 00:10:57,760 --> 00:10:58,210 >> СПІКЕР: Не. 266 00:10:58,210 --> 00:11:00,570 Мы маглі б змяніць аптымізацыю, гэта будзе працаваць. 267 00:11:00,570 --> 00:11:02,240 Я магу зрабіць гэта для вас, але - 268 00:11:02,240 --> 00:11:02,930 >> АЎДЫТОРЫЯ: Я вазьму на слова. 269 00:11:02,930 --> 00:11:03,690 >> СПІКЕР: Так. 270 00:11:03,690 --> 00:11:09,690 Калі адкрыць файл зборкі прама тут, Я змяніў аптымізацыі. 271 00:11:09,690 --> 00:11:11,570 Такім чынам, вы можаце зрабіць рывок нуль, нуль. 272 00:11:11,570 --> 00:11:12,820 Гэта ўсё роўна будзе працаваць. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Іншыя думкі? 275 00:11:20,280 --> 00:11:22,600 >> Вы, хлопцы, усе павінны працаваць, таму навошта вы чакаеце яго на працу? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Няма? 278 00:11:32,150 --> 00:11:33,660 Маўчанне. 279 00:11:33,660 --> 00:11:34,910 ОК. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Мне прыйдзецца чакаць сем секунд, таму што я задаў пытанне. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Так выдатна, што пра З, і ў Вас ёсць верагодна, адчуваў перш - вам 284 00:11:48,660 --> 00:11:50,260 не маглі б мець, гэта можа ў першы раз. 285 00:11:50,260 --> 00:11:57,030 Але як вы ўсё ведаеце, калі я пішу нешта ў C, гэта не ратуе, як 286 00:11:57,030 --> 00:11:57,760 гэта на кампутары. 287 00:11:57,760 --> 00:11:59,440 Гэта захоўваецца ў выглядзе нулёў і адзінак. 288 00:11:59,440 --> 00:12:02,970 Гэта ідзе ад C кода асэмблера. 289 00:12:02,970 --> 00:12:09,460 >> Хто-небудзь бачыў асэмблера і раней, мантаж машын код? 290 00:12:09,460 --> 00:12:10,630 Мы разгледзім у секунду. 291 00:12:10,630 --> 00:12:12,040 Гэта ідзе ад C кода асэмблера. 292 00:12:12,040 --> 00:12:13,755 І вы, хлопцы, ведаеце этапы кампіляцыі. 293 00:12:13,755 --> 00:12:17,410 Вы павінны былі запомніць, што для віктарыны адной, а затым запісаць яго на віктарыне нулявы. 294 00:12:17,410 --> 00:12:18,240 Большасць людзей атрымалі гэта няправільна. 295 00:12:18,240 --> 00:12:19,760 Я думаю, што вы, хлопцы, прыбіў яго. 296 00:12:19,760 --> 00:12:22,880 >> Але, вы, хлопцы, самыя лепшыя раздзел для віктарыны, дарэчы. 297 00:12:22,880 --> 00:12:25,210 Які дзіўны. 298 00:12:25,210 --> 00:12:25,910 Гэта вам не пашкодзіць. 299 00:12:25,910 --> 00:12:26,900 Не турбуйся. 300 00:12:26,900 --> 00:12:28,800 Але гэта сапраўды выдатна. 301 00:12:28,800 --> 00:12:29,660 Добрая праца. 302 00:12:29,660 --> 00:12:32,870 >> І так будзе працягвацца да асэмблеры, і Затым яна пераходзіць да нулёў і адзінак. 303 00:12:32,870 --> 00:12:35,500 І тыя, і нулі захоўваюцца на кампутар, і вось, што захоўваецца ў 304 00:12:35,500 --> 00:12:38,340 a.out, ці ў дадзеным выпадку, выкананы файл. 305 00:12:38,340 --> 00:12:41,040 І кампутар працуе адзінкі і нулі. 306 00:12:41,040 --> 00:12:41,670 Ці не так? 307 00:12:41,670 --> 00:12:43,890 Мы даведаліся гэта раней. 308 00:12:43,890 --> 00:12:47,490 >> Так выдатна, што ёсць, гэта без знака Ідэя, ідэя тыпаў цэлых лікаў без знака, 309 00:12:47,490 --> 00:12:50,490 і гэтак далей, і гэтак далей, гэта тут, у мове Сі. 310 00:12:50,490 --> 00:12:51,110 Тыя, існуе. 311 00:12:51,110 --> 00:12:53,770 Але тыпы не існуюць у адзінкі і нулі. 312 00:12:53,770 --> 00:12:57,110 Тыпы нават не рэальна існуюць у ўзровень мовы асэмблера. 313 00:12:57,110 --> 00:13:00,075 Дык вось тое, што існуе ў З свет, але не існуе ў кампутары 314 00:13:00,075 --> 00:13:01,640 Свет або працэсар свет. 315 00:13:01,640 --> 00:13:04,660 Вось некаторыя абстракцыя, што C мова уключыў, каб зрабіць наш 316 00:13:04,660 --> 00:13:06,240 жыццё прасцей. 317 00:13:06,240 --> 00:13:09,990 >> Так, у рэшце рэшт, я магу напісаць шмат розных рэчаў тут, і гэта 318 00:13:09,990 --> 00:13:10,700 не змянiць сiтуацыю. 319 00:13:10,700 --> 00:13:12,060 Таму, што толькі існуе у З свеце. 320 00:13:12,060 --> 00:13:14,100 Яна не існуе ў адзінкі і нулі свет. 321 00:13:14,100 --> 00:13:17,310 І наша праграма, якi ажыццяўляе ў у адзінкі і нулі свет. 322 00:13:17,310 --> 00:13:21,170 Так што ваш розум відавочна не перегорел. 323 00:13:21,170 --> 00:13:22,740 Але я думаю, што гэта крута. 324 00:13:22,740 --> 00:13:23,530 Так, Джэф. 325 00:13:23,530 --> 00:13:27,298 >> АЎДЫТОРЫЯ: Дык што, калі замест таго, каб рабіць Int, вы робіце знак. 326 00:13:27,298 --> 00:13:27,770 І вы былі - 327 00:13:27,770 --> 00:13:29,311 >> СПІКЕР: Давайце зробім гэта праз секунду. 328 00:13:29,311 --> 00:13:32,583 >> АЎДЫТОРЫЯ: Таму што тады вы атрымаеце без знака адбываецца ад негатыўнага 128 да 329 00:13:32,583 --> 00:13:34,720 127 або ад 0 да 255. 330 00:13:34,720 --> 00:13:36,760 >> СПІКЕР: Так сімвал праблематычна. 331 00:13:36,760 --> 00:13:39,460 Хто-небудзь ведае, чаму сімвал будзе праблематычна, і гэта фактычна 332 00:13:39,460 --> 00:13:42,930 змяніць становішча рэчаў у тыя і обнуляет свет? 333 00:13:42,930 --> 00:13:44,370 >> АЎДЫТОРЫЯ: З-за памеру знак. 334 00:13:44,370 --> 00:13:46,200 >> СПІКЕР: Памер паўкокс 1. 335 00:13:46,200 --> 00:13:48,260 Такім чынам, без знака, таксама 4 байта. 336 00:13:48,260 --> 00:13:50,080 Так сімвал будзе шруба рэчы. 337 00:13:50,080 --> 00:13:55,660 Але тое, што складае 4 байта, што па праезду звязана з паўкокс? 338 00:13:55,660 --> 00:13:57,820 Ці, па крайняй які дадае адзін дадатковы - 339 00:13:57,820 --> 00:13:59,760 Вы можаце змясціць больш на адзін знак пасля гольца. 340 00:13:59,760 --> 00:14:00,200 >> АЎДЫТОРЫЯ: Чар зорка. 341 00:14:00,200 --> 00:14:01,220 >> СПІКЕР: Чар зорка мае 4 байта. 342 00:14:01,220 --> 00:14:02,490 Так што давайце рабіць нешта што гэта сімвал зоркі. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Так што гэта, верагодна, працаваць, але мы збіраюся зрабіць нешта яшчэ 345 00:14:07,240 --> 00:14:09,710 больш вар'ятам, чым гэта. 346 00:14:09,710 --> 00:14:10,960 На мой погляд, больш вар'ятам. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Я цяпер напісаў функцыю, якая вяртае паказальнік, і ён прымае 349 00:14:24,570 --> 00:14:29,480 паказальнік і значэнне без знака - мы будзем змяніць гэта таму ў цэлае так што мы не 350 00:14:29,480 --> 00:14:31,250 робіць занадта шмат змен адразу. 351 00:14:31,250 --> 00:14:35,370 І гэта мае масіў называецца, індэксы ў масіве і вяртае 352 00:14:35,370 --> 00:14:35,850 адрас. 353 00:14:35,850 --> 00:14:37,470 Мы бачылі гэтыя аператары раней. 354 00:14:37,470 --> 00:14:43,340 Гэта, як вы думаеце гэта будзе рабіць, у сваю чаргу, калі я яго запускаю? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Што вы думаеце, што гэта збіраецца рабіць? 357 00:14:49,070 --> 00:14:50,320 Любыя здагадкі? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> АЎДЫТОРЫЯ: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> СПІКЕР: Што? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Гэта добрае здагадку. 363 00:14:58,520 --> 00:14:59,430 Том кажа тое ж самае. 364 00:14:59,430 --> 00:15:02,240 Любыя іншыя здагадкі? 365 00:15:02,240 --> 00:15:05,260 >> Хто думае, што гэта збіраецца зрабіць тое ж самае? 366 00:15:05,260 --> 00:15:06,510 Хто думае, што гэта збіраецца да выпадзення? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Ён робіць тое ж самае. 369 00:15:10,230 --> 00:15:11,880 Выбачайце. 370 00:15:11,880 --> 00:15:13,860 >> Але, вядома, мы ўкладваем у 1 і 2. 371 00:15:13,860 --> 00:15:16,470 І тыя і дзейнічае, ці не так? 372 00:15:16,470 --> 00:15:19,420 Давайце паглядзім, мы можам перайсці да Другое месца масіва. 373 00:15:19,420 --> 00:15:24,010 Але што, калі мы зрабілі б адмоўны лік? 374 00:15:24,010 --> 00:15:26,380 Вось, напэўна, лепш здагадка за нешта вяртае памылку сегментацыі. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Ён па-ранейшаму працуе. 377 00:15:32,260 --> 00:15:35,020 >> ОК, гэта цяпер з розуму. 378 00:15:35,020 --> 00:15:38,350 Гэта аднолькава дапушчальным значэннем функцыі сумы. 379 00:15:38,350 --> 00:15:40,470 Гэта робіць сапраўды такі ж рэчы як зваротны а і Коммерсанта. 380 00:15:40,470 --> 00:15:44,600 Хто-небудзь можа растлумачыць, чаму гэта добрая Падводзячы функцыю, або чаму гэта працуе? 381 00:15:44,600 --> 00:15:45,850 Што тут адбываецца? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Чаму гэта зрабіць сапраўды такі жа паняцці, як наш стары функцыі сумы? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 што адбываецца? 386 00:15:58,155 --> 00:16:01,540 >> АЎДЫТОРЫЯ: Таму што, калі ў вас ёсць вось зварот да 387 00:16:01,540 --> 00:16:03,950 вочка памяці - 388 00:16:03,950 --> 00:16:07,910 і калі вы робіце Ампэрсанд, ён ідзе на гэты адрас памяці. 389 00:16:07,910 --> 00:16:13,610 І калі вы ідзяце у б, ты накшталт рухаюцца кроках ад гэтага адрасу памяці, 390 00:16:13,610 --> 00:16:15,550 вы вярнуліся, што. 391 00:16:15,550 --> 00:16:20,083 Так ты на самай справе, па сутнасці, Даданне і б [неразборліва]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Дзе стандартныя аперацыі на гэтым наўзамен? 394 00:16:26,222 --> 00:16:27,683 Маўляў, куды дужкі падаць? 395 00:16:27,683 --> 00:16:30,610 Ці з'яўляецца вяртанне адрас на да або пасля [неразборліва]? 396 00:16:30,610 --> 00:16:32,380 >> СПІКЕР: Гэта будзе ў якасці індэкса ў бы - 397 00:16:32,380 --> 00:16:34,430 або індэкс ў -, а затым вяртае адрас. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 Такім чынам, сапраўды, усе разумеюць, што [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 сказаў, і патлумачыў, чаму гэта працуе? 401 00:16:45,830 --> 00:16:49,430 Я не зрабіў, першы раз, калі хто-то патлумачыў гэта мне. 402 00:16:49,430 --> 00:16:51,900 Хто-небудзь Хацелі б карціну гэта растлумачыць? 403 00:16:51,900 --> 00:16:55,320 Мы збіраемся намаляваць карціну, з ніякіх маркераў, што не выдатна. 404 00:16:55,320 --> 00:16:57,920 Знойдзена некаторыя. 405 00:16:57,920 --> 00:17:03,390 >> Таму ў нас ёсць масіў Вось шэраг скрынак. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 Першы індэкс 0, індэкс 1, 2, 3, 4, кропка, кропка, кропка. 408 00:17:13,710 --> 00:17:15,609 Тыповы масіў. 409 00:17:15,609 --> 00:17:19,540 І ў дадатак да індэксы, усе яны маюць адрасы памяці. 410 00:17:19,540 --> 00:17:30,190 Так што давайце даць гэтым адрасе ў памяці 13, 14, 15, 16, 17, і гэтак далей. 411 00:17:30,190 --> 00:17:32,490 Усё тут да гэтага часу. 412 00:17:32,490 --> 00:17:35,810 >> Такім чынам, гэта адрас. 413 00:17:35,810 --> 00:17:38,850 Імя масіва, паказальнік там захоўваецца. 414 00:17:38,850 --> 00:17:42,730 Гэта паказальнік, гэта вобласць памяці, на пачатак масіва. 415 00:17:42,730 --> 00:17:45,910 Так што, калі б гэта было масіў, б значэнне 13. 416 00:17:45,910 --> 00:17:49,110 І, вядома, мы можам даць любое значэнне мы хочам. 417 00:17:49,110 --> 00:17:52,450 Чар зоркі, мы можам даць любой адрас памяці мы хочам. 418 00:17:52,450 --> 00:17:55,940 Мы можам даць яму 0, мы можам даць яму адмоўны 1 - адмоўная 1 не існуе, 419 00:17:55,940 --> 00:17:58,820 так што, напэўна праблематычна, але вы бачылі, што ён па-ранейшаму працаваў. 420 00:17:58,820 --> 00:18:03,070 Такім чынам, мы можам даць любую колькасць мы хочам, любы адрас памяці мы хочам. 421 00:18:03,070 --> 00:18:08,720 >> Тады, унутр б кажа, у парадку, пераходзіце гэты лік з крокаў у масіў. 422 00:18:08,720 --> 00:18:13,150 Так што, калі б роўная 2, і роўная 13, мы па адрасе памяці 13. 423 00:18:13,150 --> 00:18:17,330 І мы ідзем два кроку ў, і таму мы тут. 424 00:18:17,330 --> 00:18:21,150 І Ампэрсанд азначае вяртанне адрас гэтага месцы. 425 00:18:21,150 --> 00:18:23,990 І адрас, вядома, 15. 426 00:18:23,990 --> 00:18:28,710 Такім чынам, мы атрымліваем 13 плюс 2, або плюс б, што на 15. 427 00:18:28,710 --> 00:18:29,590 >> Пытанне ў тым, хоць - 428 00:18:29,590 --> 00:18:30,250 Мне вельмі шкада. 429 00:18:30,250 --> 00:18:34,324 Ці значыць гэта, растлумачыць рэчы чаму гэта працуе? 430 00:18:34,324 --> 00:18:36,300 >> Зала: А чаму яна будзе працаваць збіраецца - 431 00:18:36,300 --> 00:18:38,770 так што вы можаце мець масіў і перайсці да адмоўных індэксам? 432 00:18:38,770 --> 00:18:39,050 >> СПІКЕР: Дакладна. 433 00:18:39,050 --> 00:18:40,870 Так мы і зрабілі адмоўныя лікі, так вось - 434 00:18:40,870 --> 00:18:42,770 Ці мае гэта сэнс, хоць, па-першае, [? Аві,?] 435 00:18:42,770 --> 00:18:43,120 для вас? 436 00:18:43,120 --> 00:18:48,840 >> АЎДЫТОРЫЯ: Так я проста [Неразборліва], але - 437 00:18:48,840 --> 00:18:50,440 >> СПІКЕР: Так, гэта вернецца 15. 438 00:18:50,440 --> 00:18:53,523 Калі было 13 гадоў, і б быў 2, гэта вернецца 15. 439 00:18:53,523 --> 00:18:58,160 >> АЎДЫТОРЫЯ: Так нулявая індэксацыя ня стаць праблемай, ці не так? 440 00:18:58,160 --> 00:19:00,160 Таму што вы рухаецеся ад 0. 441 00:19:00,160 --> 00:19:00,470 >> СПІКЕР: Дакладна. 442 00:19:00,470 --> 00:19:05,000 Дык вы рухаецеся - так што калі б быў 0, вы б не рухацца ў любым месцы. 443 00:19:05,000 --> 00:19:06,330 І вы толькі што вярнуліся адрас - 444 00:19:06,330 --> 00:19:10,830 калі б быў 0, што па сутнасці вяртання, што адрас. 445 00:19:10,830 --> 00:19:13,960 Пераходзячы ў сЬаг зоркі а і вяртанне адрас толькі вяртання, 446 00:19:13,960 --> 00:19:15,860 па сутнасці. 447 00:19:15,860 --> 00:19:18,280 >> Добра, пытанне ў тым, чаму адмоўныя лікі працуе? 448 00:19:18,280 --> 00:19:21,670 І гэта сапраўды выдатна, што пра гэта, таму што гэта павінна сегментацыі. 449 00:19:21,670 --> 00:19:25,110 І было б сегментацыі, калі мы зрабіў нешта накшталт гэтага. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Скажам, унутр. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Так гэты код выглядае ідэнтычна і павінны паводзіць сябе аднолькава. 454 00:19:39,810 --> 00:19:44,550 Па сутнасці, х з'яўляецца зменнай смецця, і так што гэта павінна вядуць сябе аднолькава. 455 00:19:44,550 --> 00:19:46,370 >> Давайце зробім гэта - 456 00:19:46,370 --> 00:19:47,620 упс - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 у зоркі. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 Добра, мы ўжо пачалі атрымліваць памылкі тут, таму што гэта ўжо будзе злавацца 461 00:20:02,733 --> 00:20:04,610 на мяне, таму што ён ужо ведае, што будзе. 462 00:20:04,610 --> 00:20:07,060 У прыватнасці, другі. 463 00:20:07,060 --> 00:20:09,800 Адрас складзеныя памяці звязаны з лакальнай зменнай. 464 00:20:09,800 --> 00:20:14,220 >> Па сутнасці, я не збіраюся скампіляваць гэта, а затым я збіраюся адмяніць рабіць 465 00:20:14,220 --> 00:20:14,920 тое, што мы толькі што зрабілі. 466 00:20:14,920 --> 00:20:19,130 Але паколькі мы ніколі не фактычна доступу, што пастаўлена на памяць 467 00:20:19,130 --> 00:20:21,930 размяшчэнне, ён не збіраецца да выпадзення. 468 00:20:21,930 --> 00:20:26,450 Мы ніколі не самай справе глядзіць на тое, што у другім полі або тое, што ў любым акне 469 00:20:26,450 --> 00:20:28,340 гэтага масіва. 470 00:20:28,340 --> 00:20:30,980 Мы толькі кажу, вось адрас з рэчы, якую мы шукаем і 471 00:20:30,980 --> 00:20:32,410 вярнуцца гэты адрас. 472 00:20:32,410 --> 00:20:35,700 Мы ніколі не на самай справе адбываецца ў Масіў глядзець на гэтым месцы. 473 00:20:35,700 --> 00:20:39,140 І таму, што мы ніколі не дакранайцеся да памяці, мы не патрапіць у бяду. 474 00:20:39,140 --> 00:20:40,760 Мы не атрымаць сегментацыі. 475 00:20:40,760 --> 00:20:46,225 >> Калі б мы паспрабавалі, зноў жа, чапай гэта памяці, сэнсарны, што было ў А ці В - 476 00:20:46,225 --> 00:20:49,940 або кранштэйн б, і мяркуючы, 0 і - 477 00:20:49,940 --> 00:20:53,040 калі 0, нават, гэта было б даволі дрэнна, таму што мы не можам пайсці 478 00:20:53,040 --> 00:20:54,090 ўніз ўсе шляхі туды. 479 00:20:54,090 --> 00:20:58,250 Калі А і У былі і 0, і мы паспрабавалі дакрануцца, што там было, то мы б 480 00:20:58,250 --> 00:20:59,110 трапіць у бяду. 481 00:20:59,110 --> 00:21:02,160 Але калі мы не чапайце тое, што там, мы проста вяртаем адрас, гэта 482 00:21:02,160 --> 00:21:08,300 на самай справе не збіраецца да выпадзення таму гэта дазваляе выконваць гэтыя аперацыі. 483 00:21:08,300 --> 00:21:11,920 Гэта толькі злуецца на вас, і атрымлівае супер злуецца, калі вы спрабуеце закрануць 484 00:21:11,920 --> 00:21:15,740 фактычная памяць і вярнуць тое, што гэта у гэтым месцы памяці. 485 00:21:15,740 --> 00:21:17,690 >> Ці мае гэта сэнс? 486 00:21:17,690 --> 00:21:24,820 Гэта проста з розуму частка С. Такім чынам, мы маем больш з іх адзін. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Хто думае, што гэта крута? 489 00:21:29,700 --> 00:21:30,280 Усё больш людзей. 490 00:21:30,280 --> 00:21:31,070 Гэта добра. 491 00:21:31,070 --> 00:21:34,860 ОК, гэта наш апошні. 492 00:21:34,860 --> 00:21:37,314 І я хацеў бы, каб ты мне ці ці вы не думаю, што гэта будзе 493 00:21:37,314 --> 00:21:38,564 зрабіць сапраўды такі ж рэчы. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Я гэта запісана недзе. 496 00:22:07,390 --> 00:22:08,640 Я не запамінаючы іх. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Давайце паглядзім, 8, бы 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Так што гэта масіў, у цяперашні час, не з'яўляецца функцыяй. 500 00:22:46,670 --> 00:22:49,640 І гэта масіў, таму што ў нас ёсць квадрат кранштэйны, ня фігурныя дужкі. 501 00:22:49,640 --> 00:22:52,360 І гэта масіў, які тып? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Любы, хм? 504 00:22:56,862 --> 00:22:57,694 >> АЎДЫТОРЫЯ: Іх шаснаццаткавыя колькасці? 505 00:22:57,694 --> 00:22:59,650 >> СПІКЕР: Але тое, што тып С? 506 00:22:59,650 --> 00:23:00,710 Усе яны маюць шаснаццаткавыя лікі. 507 00:23:00,710 --> 00:23:01,960 Што тып С? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Яна кажа вам. 510 00:23:05,480 --> 00:23:07,350 >> АЎДЫТОРЫЯ: Гэта непадпісаныя сімвалы. 511 00:23:07,350 --> 00:23:09,170 >> СПІКЕР: справа, без знака сімвалы. 512 00:23:09,170 --> 00:23:13,050 І дзве шаснаццаткавыя колькасці адзін байт. 513 00:23:13,050 --> 00:23:18,540 Так што гэта 1, 2, 3, 4, 5, 6, 7, 8, 9 байт. 514 00:23:18,540 --> 00:23:21,360 Гэта масіў з 9 байт. 515 00:23:21,360 --> 00:23:25,530 >> ОК, вы, верагодна, ужо ведаеце, Адказ на гэтае пытанне. 516 00:23:25,530 --> 00:23:29,840 Але, як вы думаеце будзе адбудзецца, калі я запускаю гэта? 517 00:23:29,840 --> 00:23:34,110 Я кажу, зноў жа, у mysum.c, Я чакаю функцыю 518 00:23:34,110 --> 00:23:36,280 , Якая прымае два цэлых колькасці. 519 00:23:36,280 --> 00:23:40,265 І я замест заявіўшы, што сума ўяўляе сабой масіў знакаў. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 Што адбудзецца, калі Я бягу. / Mysum і зрабіць? 522 00:23:48,070 --> 00:23:53,230 >> Ну, па-першае, большасць з вас, верагодна, згодныя, што марка - о не, жартую. 523 00:23:53,230 --> 00:23:54,746 Што я зрабіў не так? 524 00:23:54,746 --> 00:23:55,996 Ой-ой. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Гэта павінна быць фігурныя дужкі. 527 00:24:01,160 --> 00:24:02,790 Вось як вы ініцыялізаваць масіў. 528 00:24:02,790 --> 00:24:04,040 Маё дрэннае. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Такім чынам, мы ўжо бачылі да гэтага тыпаў з'яўляюцца абстракцыя C-ўзроўню, а ня 531 00:24:11,670 --> 00:24:12,610 абстракцыя ўзровень камп'ютэрнай. 532 00:24:12,610 --> 00:24:16,360 Так што большасць з вас, верагодна чакаў, што гэта зрабіць, або пры ўмове, што ён будзе рабіць. 533 00:24:16,360 --> 00:24:18,680 Але што, калі я запускаю. / Mysum? 534 00:24:18,680 --> 00:24:19,930 Што адбудзецца? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Любыя здагадкі? 537 00:24:23,422 --> 00:24:25,270 >> АЎДЫТОРЫЯ: Гэта збіраецца раздрукаваць ні слова. 538 00:24:25,270 --> 00:24:26,310 >> СПІКЕР: Гэта збіраецца раздрукаваць ні слова. 539 00:24:26,310 --> 00:24:29,335 Якое слова? 540 00:24:29,335 --> 00:24:32,200 >> АЎДЫТОРЫЯ: [неразборліва]. 541 00:24:32,200 --> 00:24:33,240 >> СПІКЕР: Любыя іншыя здагадкі? 542 00:24:33,240 --> 00:24:34,000 ОК, раздрукаваць фразу. 543 00:24:34,000 --> 00:24:35,130 Вы можаце мець любую фразу. 544 00:24:35,130 --> 00:24:36,240 Гэта будзе ваша бок. 545 00:24:36,240 --> 00:24:38,480 Любы, хто мае іншае меркаванне? 546 00:24:38,480 --> 00:24:39,730 Ганна, што ваша здагадка? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> АЎДЫТОРЫЯ: Гэта будзе раздрукаваць - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 дзве літары, або [неразборліва] адна літара. 551 00:24:49,480 --> 00:24:51,460 >> СПІКЕР: Адно ліст. 552 00:24:51,460 --> 00:24:53,260 >> АЎДЫТОРЫЯ: Ці магу я разлічваць, як многія [неразборліва]? 553 00:24:53,260 --> 00:24:55,426 >> СПІКЕР: Дзевяць. 554 00:24:55,426 --> 00:24:56,640 Ну, я збіраюся запусціць яго. 555 00:24:56,640 --> 00:24:58,650 Ён робіць тое ж дакладную рэч. 556 00:24:58,650 --> 00:25:00,190 Ён дадае разам два ліку. 557 00:25:00,190 --> 00:25:02,740 Ну, давайце прайсці два аргументу. 558 00:25:02,740 --> 00:25:03,710 Гэта не зойме аргументы. 559 00:25:03,710 --> 00:25:06,080 Так што я не ведаю, дзе яна магла б магчыма, атрымаць гэтыя аргументы. 560 00:25:06,080 --> 00:25:07,710 Але давайце пяройдзем на 100 і 0. 561 00:25:07,710 --> 00:25:09,200 І гэта дадае 100 і 0. 562 00:25:09,200 --> 00:25:10,220 Гэта вар'яцтва. 563 00:25:10,220 --> 00:25:12,280 Думаю, што так. 564 00:25:12,280 --> 00:25:14,480 >> Адмоўны 4, што таксама працуе. 565 00:25:14,480 --> 00:25:15,650 Вы можаце зрабіць усё, што заўгодна. 566 00:25:15,650 --> 00:25:17,920 Гэта ў роўнай ступені дзейнічае функцыя сума. 567 00:25:17,920 --> 00:25:19,640 Гэта функцыя сума. 568 00:25:19,640 --> 00:25:21,510 Але, не, ты хочаш сказаць, што гэта масіў байтаў. 569 00:25:21,510 --> 00:25:23,570 Дык што ж тут адбываецца? 570 00:25:23,570 --> 00:25:27,240 >> Так, зноў жа, давайце вернемся да гэтай ідэі што мы сказалі ў самым пачатку. 571 00:25:27,240 --> 00:25:32,050 Вы ідзяце ад кода C-ўзроўню, да зборкі мову, каб нулёў і адзінак. 572 00:25:32,050 --> 00:25:33,050 Гэта шаснаццатковае. 573 00:25:33,050 --> 00:25:35,780 Але гэта на самай справе проста шмат нулёў і адзінак. 574 00:25:35,780 --> 00:25:39,230 Гэта 72 адзінкі і нулі, ці не так? 575 00:25:39,230 --> 00:25:40,550 72 адзінкі і нулі. 576 00:25:40,550 --> 00:25:42,160 9 байт. 577 00:25:42,160 --> 00:25:43,740 Кожны байт складаецца з 8 бітаў. 578 00:25:43,740 --> 00:25:44,760 Кожны біт ўяўляе сабой адзін або нуль. 579 00:25:44,760 --> 00:25:45,920 Так 72 з іх або нулі. 580 00:25:45,920 --> 00:25:48,780 Я толькі што напісаў іх, як гэта - а ня пісаць яго, як шмат 581 00:25:48,780 --> 00:25:49,730 адзінкі і нулі. 582 00:25:49,730 --> 00:25:53,560 >> Але гэта будзе ісці ад C-ўзроўню мова, да зборкі 583 00:25:53,560 --> 00:25:54,620 мова, да кода. 584 00:25:54,620 --> 00:25:59,020 І гэта будзе раздрукаваць у кодзе, дзесьці, гэтыя 72 адзінкі і нулі 585 00:25:59,020 --> 00:26:00,910 што я напісаў тут. 586 00:26:00,910 --> 00:26:03,610 Так недзе ў тым, што - 587 00:26:03,610 --> 00:26:04,850 давайце тут - 588 00:26:04,850 --> 00:26:11,240 дзесьці ў mysum, праграма, ёсць гэтыя 72 адзінкі і нулі, што я 589 00:26:11,240 --> 00:26:14,930 напісана і сказана гэта напісаць. 590 00:26:14,930 --> 00:26:19,331 >> Зараз любы здагадкі за тое, што тыя, 72 адзінкі і нулі на ўвазе? 591 00:26:19,331 --> 00:26:21,240 >> АЎДЫТОРЫЯ: Напэўна, тое ж паняцці, як вяртаць плюс б. 592 00:26:21,240 --> 00:26:22,890 >> СПІКЕР: Напэўна, тое ж паняцці, як вяртаць плюс б. 593 00:26:22,890 --> 00:26:23,730 Давайце праверым гэта. 594 00:26:23,730 --> 00:26:25,210 Давайце зразумець, як я гэта зрабіў. 595 00:26:25,210 --> 00:26:31,840 >> Так што, калі вы ідзяце сюды, я вам скажу Для выканання гэтай каманды, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Пойдзем запусціць яго. objdump - 598 00:26:36,230 --> 00:26:37,990 аб'ект, самазвалы. 599 00:26:37,990 --> 00:26:39,840 У асноўным гэта можа даць мне усё, што я хачу бачыць. 600 00:26:39,840 --> 00:26:40,840 Гэта можа даць мне мове асэмблера. 601 00:26:40,840 --> 00:26:42,730 Ён можа даць мне адзінкі і нулі. 602 00:26:42,730 --> 00:26:43,840 Яна мае масу сьцягоў. 603 00:26:43,840 --> 00:26:45,860 Гэта той, які мы збіраемся выкарыстоўваць у цяперашні час. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 як вы бачыце на слайдах - 606 00:26:48,810 --> 00:26:53,840 працяжнік капітал S кажа, перасыпаць, Зыходны код - 607 00:26:53,840 --> 00:26:58,410 гэтая лінія гэта ад C - са зборкай Код і з нулёў і адзінак. 608 00:26:58,410 --> 00:27:00,350 І мы збіраемся запусціць гэта на sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Таму што гэта будзе лягчэй ўбачыць. 610 00:27:01,410 --> 00:27:02,670 Зноў - хм? 611 00:27:02,670 --> 00:27:04,700 >> АЎДЫТОРЫЯ: Вы выразна гэта не так. 612 00:27:04,700 --> 00:27:05,930 >> СПІКЕР: Але я сапраўды збіраюся каб ачысціць яго ні на секунду. 613 00:27:05,930 --> 00:27:09,160 Я спачатку збіраецца адкрыць проста sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> АЎДЫТОРЫЯ: Вы выразна гэта так у першы раз. 615 00:27:11,170 --> 00:27:12,420 >> СПІКЕР: Класічны. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Сума - 618 00:27:15,480 --> 00:27:16,680 што гэта цяжка слова, усё ж. 619 00:27:16,680 --> 00:27:19,050 Вы былі б здзіўлены. 620 00:27:19,050 --> 00:27:21,560 ОК, так што гэта sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Я не мог нават сказаць вам. 623 00:27:26,220 --> 00:27:30,250 Там вельмі шмат нулёў, ясна шмат Нулі, і ёсць некаторыя іншыя 624 00:27:30,250 --> 00:27:31,930 рэчы, якія не нулі. 625 00:27:31,930 --> 00:27:33,220 Але ў асноўным нулі. 626 00:27:33,220 --> 00:27:35,120 Падобна на тое, ёсць некаторыя з іх. 627 00:27:35,120 --> 00:27:36,810 Такім чынам, ясна, што гэта цяжка чытаць. 628 00:27:36,810 --> 00:27:39,320 Гэта двайковы мову. 629 00:27:39,320 --> 00:27:40,710 >> Давайце зараз адкрыць яго - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 што? 632 00:27:52,350 --> 00:27:53,600 Што я раблю не так? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Хіба я літарах правільна? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 Добра, гэта нязручна. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Мне трэба адну секунду, каб высветліць тое, што я раблю няправільна. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Гэта адна памылка. 641 00:28:49,310 --> 00:28:50,560 Гэта дзіўна. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 О, вось чаму. 644 00:29:01,800 --> 00:29:09,880 >> Я збіраюся вярнуцца да нашага першапачатковага адзін, таму мы можам паглядзець на 645 00:29:09,880 --> 00:29:10,560 аб'ектны код гэтага. 646 00:29:10,560 --> 00:29:13,390 Таму што на самой справе не збіраецца быць што заўгодна, калі мы проста паставіць 647 00:29:13,390 --> 00:29:14,640 адзінкі і нулі цалі 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Там мы ідзем. 650 00:29:30,200 --> 00:29:32,425 ОК, так што кожны можа ўбачыць гэта. 651 00:29:32,425 --> 00:29:38,130 Гэтая функцыя, як я ўжо сказаў, патушыць лініі C - 652 00:29:38,130 --> 00:29:39,060 радкоў зыходнага кода - 653 00:29:39,060 --> 00:29:41,000 з некаторымі інструкцыямі па зборцы. 654 00:29:41,000 --> 00:29:42,760 >> Вось наш зыходны код лінія. 655 00:29:42,760 --> 00:29:44,910 Вось адзін, вось яшчэ. 656 00:29:44,910 --> 00:29:46,540 Вось інструкцыя па мантажы. 657 00:29:46,540 --> 00:29:47,820 Вось як яны выглядаюць. 658 00:29:47,820 --> 00:29:49,010 Інструкцыя па мантажы - 659 00:29:49,010 --> 00:29:51,530 Вы можаце даведацца больш з іх, калі вы бераце іншыя класы CS, але яны 660 00:29:51,530 --> 00:29:53,500 як правіла, гэта інструкцыя. 661 00:29:53,500 --> 00:29:57,940 А потым крыніцай і прызначэння. 662 00:29:57,940 --> 00:30:02,740 >> А потым тут з'яўляецца двайковы код што адпавядае гэтай зборкі 663 00:30:02,740 --> 00:30:04,940 інструкцыя. 664 00:30:04,940 --> 00:30:09,760 Так як вы можаце бачыць, гэтая функцыя сума, у рэшце рэшт, гэта тры 665 00:30:09,760 --> 00:30:10,950 інструкцыя па мантажы. 666 00:30:10,950 --> 00:30:12,870 Толькі тры. 667 00:30:12,870 --> 00:30:14,180 Адзін мов - 668 00:30:14,180 --> 00:30:16,740 гэта м-о-V пазначае Move. 669 00:30:16,740 --> 00:30:17,780 Дадаць стэнды для Add. 670 00:30:17,780 --> 00:30:20,440 І г-е-т стаіць за вяртанне. 671 00:30:20,440 --> 00:30:22,540 Такім чынам, адна мов, адзін дадаць, адзін вяртанне. 672 00:30:22,540 --> 00:30:27,970 І гэта, тут, з'яўляюцца нулі і тыя, якія адпавядаюць гэтым кодам. 673 00:30:27,970 --> 00:30:31,100 >> Так гэтыя нулі і адзінкі, калі вы ведаю тых, вы можаце проста пакласці 674 00:30:31,100 --> 00:30:32,140 тыя, прама цалі 675 00:30:32,140 --> 00:30:34,130 А потым ён будзе рабіць сапраўды такі ж рэч. 676 00:30:34,130 --> 00:30:37,260 Таму што, у рэшце рэшт, усё , Неабходна выканаць гэта доўгая серыя 677 00:30:37,260 --> 00:30:38,480 нулёў і адзінак. 678 00:30:38,480 --> 00:30:40,700 І вось што ваш код на самай справе. 679 00:30:40,700 --> 00:30:41,770 >> І прычына - 680 00:30:41,770 --> 00:30:43,680 давайце паглядзім на адну рэч. 681 00:30:43,680 --> 00:30:45,440 Ці ёсць у мяне Makefile, адкрытым? 682 00:30:45,440 --> 00:30:48,510 Так што, калі мы вярнуліся ў працяжнік нуль, нуль тут - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 шкада, загалоўная літара О, капітал аб роўна нулю, ня роўная нуля, роўная нулю. 685 00:30:57,300 --> 00:31:01,810 І мы сапраўды рабілі, гэта было б яшчэ працуюць гэтак жа. 686 00:31:01,810 --> 00:31:05,420 Але цяпер вы заўважыце, што ёсць нашмат больш інструкцыі па зборцы. 687 00:31:05,420 --> 00:31:09,090 Гэта таму, што, зноў жа, я спытаў кампілятар не рабіць якой-небудзь аптымізацыі. 688 00:31:09,090 --> 00:31:12,800 >> Так што я яшчэ мог узяць усе гэтыя нулёў і адзінак, і кінуць іх у, 689 00:31:12,800 --> 00:31:13,390 і што будзе працаваць. 690 00:31:13,390 --> 00:31:15,850 Я проста зрабіў тое аптымізацыя, таму што гэта крыху лягчэй, то, 691 00:31:15,850 --> 00:31:17,310 напісаць гэты масіў. 692 00:31:17,310 --> 00:31:19,730 Але гэта будзе працаваць так жа добра. 693 00:31:19,730 --> 00:31:24,460 >> Добра, мы збіраемся зрабіць адну заключную рэч, таму што я думаю, гэта самая халодная частку. 694 00:31:24,460 --> 00:31:27,410 Нягледзячы на ​​тое, усё гэта выразна ўжо падарваны і гаворкі. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Нашы розумы падарваны. 697 00:31:31,670 --> 00:31:32,920 [Неразборліва] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Такім чынам, гэта з іншага класа CS, які супер прыгожыя, 700 00:31:51,520 --> 00:31:52,970 што я ўзяў - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Я настойліва рэкамендую вам прыняць яго. 703 00:31:55,910 --> 00:31:58,990 Але халаднаватае частка аб гэтым факце, што рэчы проста нулёў і адзінак, 704 00:31:58,990 --> 00:32:01,270 у тым, што ўсе нулёў і адзінак. 705 00:32:01,270 --> 00:32:05,330 >> Такім чынам, вы можаце ўзяць файл з пашырэннем правільныя нулёў і адзінак, якія вы хочаце 706 00:32:05,330 --> 00:32:10,390 дзесьці ў ім, і выкарыстоўваць гэтую секцыю нулі і адзінкі ў залежнасці сума. 707 00:32:10,390 --> 00:32:11,480 >> Што я маю на ўвазе пад гэтым? 708 00:32:11,480 --> 00:32:15,755 Я маю на ўвазе вы можаце ўзяць файл малюнка, мае правільную серыю нулёў і 709 00:32:15,755 --> 00:32:17,120 тыя, якія друкуюць нешта да выявы. 710 00:32:17,120 --> 00:32:20,070 І адна праграма можа інтэрпрэтаваць гэта малюнак, але вы можаце інтэрпрэтаваць яго, калі 711 00:32:20,070 --> 00:32:22,040 Вы хочаце, як функцыя сумы. 712 00:32:22,040 --> 00:32:27,010 >> Так што, калі мы хацелі, каб адкрыць, для Напрыклад, гэты вобраз. 713 00:32:27,010 --> 00:32:37,440 Пойдзем, Hello Kitty. 714 00:32:37,440 --> 00:32:38,810 Выдатны невялікі малюнка. 715 00:32:38,810 --> 00:32:42,260 У тут ёсць тое, што радок з нулёў і адзінак. 716 00:32:42,260 --> 00:32:45,500 Гэтыя 72 нулёў і адзінак існуюць у гэтай фатаграфіі. 717 00:32:45,500 --> 00:32:47,695 >> Так што я магу зрабіць, то, гэта напісаць - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Я павінен памятаць, дзе яны знаходзяцца. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Я знайду, што ў секунду. 722 00:32:55,720 --> 00:32:57,840 Але мы робім - 723 00:32:57,840 --> 00:32:59,440 дазвольце мне даведацца, дзе яны знаходзяцца. 724 00:32:59,440 --> 00:33:00,020 Адзін сек. 725 00:33:00,020 --> 00:33:01,270 Давайце зробім - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> АЎДЫТОРЫЯ: [неразборліва]. 728 00:33:07,240 --> 00:33:08,490 >> СПІКЕР: Дзякуй. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Так што, калі мы выконваем гэтую праграму, якая замест чытае ў файле, то ён ідзе 731 00:33:28,740 --> 00:33:33,160 гэтым паказчыку ў файле. 732 00:33:33,160 --> 00:33:35,500 А потым, зноў жа, гэтак жа, як mysum, бярэ два ліку. 733 00:33:35,500 --> 00:33:41,410 Мы можам дадаць нумары сапраўды гэтак жа, як мы рабілі раней, што ідзе ў 734 00:33:41,410 --> 00:33:44,850 паказаць вам, як той факт, што, у канцы у дзень, усе гэтыя рэчы 735 00:33:44,850 --> 00:33:45,350 нулёў і адзінак. 736 00:33:45,350 --> 00:33:48,170 І гэта проста, як вы выбіраеце інтэрпрэтаваць іх. 737 00:33:48,170 --> 00:33:50,770 >> І калі вы на самой справе выглядаюць на гэтай фатаграфіі - 738 00:33:50,770 --> 00:33:52,930 давайце павелічэння няшмат. 739 00:33:52,930 --> 00:33:53,720 Ці ўсе могуць гэта ўбачыць? 740 00:33:53,720 --> 00:33:57,570 Вы заўважыце, прама тут, ёсць некаторыя дзіўныя пляма. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Пойдзем - гэта зыходны малюнак. 743 00:34:02,290 --> 00:34:04,540 Вы заўважыце, тут няма ніякага пляма. 744 00:34:04,540 --> 00:34:08,420 Гэта значыць код функцыі сумы, з'яўляецца тое, што мала пляма прама там. 745 00:34:08,420 --> 00:34:13,449 >> А на самай справе, зноў жа, калі вы даведаецеся больш пра гэта, вы зразумееце, што гэта 746 00:34:13,449 --> 00:34:18,270 Hello Kitty, які мае нават больш пляма, мае код, які можа ўзяць на сябе 747 00:34:18,270 --> 00:34:21,800 кампутар, калі ён не абаронены адпаведна. 748 00:34:21,800 --> 00:34:23,920 Такім чынам, вы можаце запусціць гэты. 749 00:34:23,920 --> 00:34:25,380 Я не збіраюся запусціць яго прама цяпер. 750 00:34:25,380 --> 00:34:30,600 Але вы можаце запусціць гэты Добры дзень Кітым малюнак, і ён можа 751 00:34:30,600 --> 00:34:32,429 атрымаць кантроль над кампутарам. 752 00:34:32,429 --> 00:34:35,159 >> Так што ўсё для дэма. 753 00:34:35,159 --> 00:34:38,560 Хто-небудзь ёсць якія-небудзь пытанні, каментары, праблемы? 754 00:34:38,560 --> 00:34:39,515 Я думаю, што гэты матэрыял з'яўляецца захапляльным. 755 00:34:39,515 --> 00:34:41,500 Гэта натхніла мяне, каб даведацца больш. 756 00:34:41,500 --> 00:34:44,980 Я настойліва рэкамендую, калі вы зацікаўлены ва ўсіх на CS, пагаварыць са мной. 757 00:34:44,980 --> 00:34:50,250 Нават пры тым, што я грамадскія навукі Канцэнтратар, я CS, сярэдняе, так 758 00:34:50,250 --> 00:34:52,340 Я да гэтага часу ведаю няшмат. 759 00:34:52,340 --> 00:34:53,810 Але я, вядома, ведаю, што класы, якія неабходна зрабіць. 760 00:34:53,810 --> 00:34:57,940 Я думаю, што гэта ўсё сапраўды цікава, і я заклікаю вас, вядома ж, 761 00:34:57,940 --> 00:35:00,330 даведацца больш, калі вы зацікаўленыя. 762 00:35:00,330 --> 00:35:02,090 >> Добра, у мяне ёсць адна заключная рэч. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Выбачайце. 765 00:35:05,870 --> 00:35:06,460 Ёсць пытанні? 766 00:35:06,460 --> 00:35:10,010 Я не спыніўся, каб пачакаць, калі хто-небудзь якія-небудзь пытанні па гэтай нагоды. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Хто-небудзь будзе CS Канцэнтратар? 769 00:35:16,900 --> 00:35:18,580 Або думаць пра гэта? 770 00:35:18,580 --> 00:35:20,730 Раз, два, тры, чатыры. 771 00:35:20,730 --> 00:35:21,620 Адзін - толькі адзін. 772 00:35:21,620 --> 00:35:24,680 Ганна з'яўляецца адзіным рука вось падняў аўтарытэтна. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 ОК, гэта крута. 775 00:35:29,390 --> 00:35:30,110 Асам, што вы збіраецеся рабіць? 776 00:35:30,110 --> 00:35:33,220 >> АЎДЫТОРЫЯ: [неразборліва]. 777 00:35:33,220 --> 00:35:33,910 >> СПІКЕР: Канстанцін? 778 00:35:33,910 --> 00:35:34,990 >> АЎДЫТОРЫЯ: Фізіка. 779 00:35:34,990 --> 00:35:36,720 >> СПІКЕР: Вау, гэта было хутка. 780 00:35:36,720 --> 00:35:40,770 У вас быў няўдалы вопыт у CS50? 781 00:35:40,770 --> 00:35:42,015 [Неразборліва], што вы збіраецеся рабіць? 782 00:35:42,015 --> 00:35:42,980 >> Залы: Я паняцця не маю,. 783 00:35:42,980 --> 00:35:43,924 >> СПІКЕР: Курт? 784 00:35:43,924 --> 00:35:45,900 >> АЎДЫТОРЫЯ: эканом або CS. 785 00:35:45,900 --> 00:35:46,910 >> СПІКЕР: эканом або CS. 786 00:35:46,910 --> 00:35:47,840 Том? 787 00:35:47,840 --> 00:35:48,385 >> АЎДЫТОРЫЯ: Я раблю Stat. 788 00:35:48,385 --> 00:35:48,950 >> СПІКЕР: Стат? 789 00:35:48,950 --> 00:35:50,100 ОК. 790 00:35:50,100 --> 00:35:51,000 Хто ты? 791 00:35:51,000 --> 00:35:51,310 >> АЎДЫТОРЫЯ: Я? 792 00:35:51,310 --> 00:35:51,750 >> СПІКЕР: Так. 793 00:35:51,750 --> 00:35:52,190 >> АЎДЫТОРЫЯ: Стат. 794 00:35:52,190 --> 00:35:52,520 >> СПІКЕР: Стат. 795 00:35:52,520 --> 00:35:53,500 О, там вы ідзяце. 796 00:35:53,500 --> 00:35:55,200 Тым, пагаварыць з Олдэн. 797 00:35:55,200 --> 00:35:56,932 Эмілі, пра што вы? 798 00:35:56,932 --> 00:35:57,396 >> АЎДЫТОРЫЯ: біямедыцынскія - 799 00:35:57,396 --> 00:36:00,178 >> СПІКЕР: Вы ў гэтым раздзеле? 800 00:36:00,178 --> 00:36:03,040 >> АЎДЫТОРЫЯ: Не. 801 00:36:03,040 --> 00:36:04,530 >> СПІКЕР: Добра, гэта Эмілі. 802 00:36:04,530 --> 00:36:05,670 Яна мой сябар. 803 00:36:05,670 --> 00:36:10,080 Відавочна не так добра пра іншае, , Таму што яна дае мне нялёгка. 804 00:36:10,080 --> 00:36:13,223 Вы можа быць прыемней для мяне перад з усіх, мой вучань - 805 00:36:13,223 --> 00:36:14,580 >> АЎДЫТОРЫЯ: Я раблю сваё Q кіраўніцтва. 806 00:36:14,580 --> 00:36:14,870 >> СПІКЕР: У самай справе? 807 00:36:14,870 --> 00:36:15,510 Ой-ой. 808 00:36:15,510 --> 00:36:17,224 ОК, вы дзіўна. 809 00:36:17,224 --> 00:36:19,380 Я так цябе люблю. 810 00:36:19,380 --> 00:36:20,600 Аб хлопчык. 811 00:36:20,600 --> 00:36:28,320 >> Ва ўсякім выпадку, я, учора ўвечары, як і ўсе - 812 00:36:28,320 --> 00:36:32,220 Я ўпэўнены, што ўсе, здаецца, сапраўды падкрэсліў прама цяпер. 813 00:36:32,220 --> 00:36:35,970 Я не ведаю, з'яўляюцца першакурснік - з'яўляюцца вы, хлопцы, у стане стрэсу? 814 00:36:35,970 --> 00:36:36,855 Я адчуваю падкрэсліў. 815 00:36:36,855 --> 00:36:37,980 Гэта было падобна, вы ідзяце дадому на Дзень падзякі. 816 00:36:37,980 --> 00:36:40,660 Ты як, я збіраюся рабіць усе гэтыя рэчы. 817 00:36:40,660 --> 00:36:41,530 >> АЎДЫТОРЫЯ: Гэта так адрозніваецца. 818 00:36:41,530 --> 00:36:42,560 >> СПІКЕР: Так, і вы вернецеся. 819 00:36:42,560 --> 00:36:45,290 Джэф, вы не адчуваеце сябе такім чынам? 820 00:36:45,290 --> 00:36:46,610 >> АЎДЫТОРЫЯ: Я проста падумаў, Я б зрабіў няшмат. 821 00:36:46,610 --> 00:36:48,660 >> СПІКЕР: ОК, выдатна. 822 00:36:48,660 --> 00:36:51,650 Так што я вярнуся, і ў мяне няма зрабіў нічога. 823 00:36:51,650 --> 00:36:53,260 І ўсё гэта супер напружаны. 824 00:36:53,260 --> 00:36:55,640 І я разумею, па-сапраўднаму, то, аб тым, ці варта мяне, тых я 825 00:36:55,640 --> 00:36:57,380 збіраюся скончыць усе, што маю, каб. 826 00:36:57,380 --> 00:37:01,750 Але ўчора ўвечары, я не падкрэсліў, Я быў проста трохі сумна. 827 00:37:01,750 --> 00:37:04,520 Так што я напісаў у сваім дзённіку аб што мне было сумна а. 828 00:37:04,520 --> 00:37:08,020 І мне было сумна пра гэта раздзеле у гэтым класе падыходзіць да канца. 829 00:37:08,020 --> 00:37:11,100 >> Так што я як раз збіраўся чытаць для вас, хлопцы невялікі ўрывак з майго часопіса, 830 00:37:11,100 --> 00:37:12,950 з мінулай ночы. 831 00:37:12,950 --> 00:37:17,400 Ці магу я атрымаць некаторыя сурвэткі, некаторыя тканіны ад Тома? 832 00:37:17,400 --> 00:37:18,040 Не, я буду плакаць. 833 00:37:18,040 --> 00:37:19,720 Я не плачу. 834 00:37:19,720 --> 00:37:22,030 Не тое, каб вы не можаце плакаць, Я проста не плач. 835 00:37:22,030 --> 00:37:24,040 Я нават не ведаю, калі мая сляза залозы працаваў - слёзныя пратокі. 836 00:37:24,040 --> 00:37:25,630 Я не плакала на працягу доўгага часу. 837 00:37:25,630 --> 00:37:26,510 >> АЎДЫТОРЫЯ: [неразборліва]. 838 00:37:26,510 --> 00:37:28,920 >> СПІКЕР: Добра, дзякуй. 839 00:37:28,920 --> 00:37:30,070 Добра, ёсць трохі прадмову - 840 00:37:30,070 --> 00:37:32,480 ёсць некаторыя іншыя часткі майго часопіса ўваход, таму што я спрабую часопісе кожны 841 00:37:32,480 --> 00:37:33,600 ноч, перш чым я дабраўся да ложка. 842 00:37:33,600 --> 00:37:34,900 Я настойліва рэкамендую журналявання. 843 00:37:34,900 --> 00:37:38,600 Гэта дапаможа вам апрацаваць рэчы, а таксама быць вельмі цэнім ваш дзень. 844 00:37:38,600 --> 00:37:43,063 І гэта робіць яго нашмат прасцей шукаць назад на свой дзень і зразумець, што 845 00:37:43,063 --> 00:37:44,240 было шмат добрага Тое, што адбылося. 846 00:37:44,240 --> 00:37:47,240 Нават калі вы адчуваеце сябе сапраўды падкрэсліў ноччу або вельмі засмучаны, або 847 00:37:47,240 --> 00:37:49,022 вельмі сумна або стаміўся. 848 00:37:49,022 --> 00:37:50,272 >> О, мой бог. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Я нават не ведаю, калі гэта напісана, што добра, таму што я не карэктаваць яго. 851 00:37:54,400 --> 00:37:55,780 Але мы будзем чытаць. 852 00:37:55,780 --> 00:37:59,950 Я звычайна не чытаю мой часопіс, гэта відавочна. 853 00:37:59,950 --> 00:38:03,720 >> "Заўтра я буду вучыць майго фінал CS50 частку года. 854 00:38:03,720 --> 00:38:05,860 Гэта вар'яцтва, як ляціць хутка час. 855 00:38:05,860 --> 00:38:09,900 Тым не менш, я здзіўлены, наколькі адрозніваецца мой вопыт выкладання ў гэтым годзе было 856 00:38:09,900 --> 00:38:11,365 чым калі я быў на другім курсе. 857 00:38:11,365 --> 00:38:14,120 Для пачатку, я вызначана ведаць матэрыял лепш. 858 00:38:14,120 --> 00:38:16,820 Але не кажаце свой першы кагорту студэнтаў, што. 859 00:38:16,820 --> 00:38:20,030 Больш важна, аднак, я зразумеў, што радасць, якая прыходзіць ад разумення 860 00:38:20,030 --> 00:38:23,160 уверх перад пакоі тое, што пачынаецца як чужыя, але заканчвае тым, як, у 861 00:38:23,160 --> 00:38:27,150 меры, Facebook сябры, не першы год выпадковасцю. 862 00:38:27,150 --> 00:38:29,970 Хутчэй, гэта ад веды, што, у некаторых малых чынам, вы дапамагаеце 863 00:38:29,970 --> 00:38:32,980 таленавіты, ўдумлівы, цудоўны, і гарачыя людзі даведацца крыху больш 864 00:38:32,980 --> 00:38:34,750 аб кампутарнай навукі. 865 00:38:34,750 --> 00:38:37,480 >> Вы зруху, што лямпачку проста трохі ў гняздзе, так што ён у стане 866 00:38:37,480 --> 00:38:42,120 ззяць ярчэй, чым вас, або яны, мог сабе ўявіць ў пачатку семестра. 867 00:38:42,120 --> 00:38:45,390 Вы дапамагаеце ператварыць гэтыя хмурыцца патэнцыял росту ўніз і задаваць пытанні, якія 868 00:38:45,390 --> 00:38:49,240 аказваць падтрымку, але ўсё ж дазваляюць студэнты ўстаць самастойна. 869 00:38:49,240 --> 00:38:52,190 >> Гэта, вядома, не будзе перабольшаннем сказаць, што гэты раздзел з'яўляецца маім любімым 870 00:38:52,190 --> 00:38:53,190 частку тыдня. 871 00:38:53,190 --> 00:38:57,930 Ці нават, што я не вырашаюся сказаць, што гэта усё, у 5:30 вечара кожны тыдзень, ведаючы 872 00:38:57,930 --> 00:39:00,640 што гэта будзе занадта доўга пакуль мы не сустрэнемся зноў. 873 00:39:00,640 --> 00:39:02,740 >> Тым не менш, я неверагодна ўдзячны кожны, хто даў мне гэта 874 00:39:02,740 --> 00:39:05,010 магчымасць аддаць іншым. 875 00:39:05,010 --> 00:39:07,340 Для Давіда, за яго цярпенне і давер. 876 00:39:07,340 --> 00:39:11,040 Для кіно і вытворчасці экіпажа, для прымушае мяне выглядаць некалькі рэспектабельна. 877 00:39:11,040 --> 00:39:15,380 І, самае галоўнае, каб мае студэнты, без якіх мяне не было б ніякіх падстаў для 878 00:39:15,380 --> 00:39:17,890 праводзяць 10 гадзін, высвятляючы, лепшы спосаб прыцягнуць паказальнікі, ці выкласці 879 00:39:17,890 --> 00:39:20,330 Табліца дэльфінаў, праз JavaScript. 880 00:39:20,330 --> 00:39:22,620 Як заўсёды, гэта было дабраславеньнем ". 881 00:39:22,620 --> 00:39:25,420 >> Так з гэтым, дзякуй вам, хлопцы. 882 00:39:25,420 --> 00:39:29,000 Я буду бачыць вас усіх на CS50 кірмашы, і Хакатон, калі вы там. 883 00:39:29,000 --> 00:39:32,020 І калі ў вас ёсць пытанні, я буду прытрымлівацца не вакол, пакуль няма больш. 884 00:39:32,020 --> 00:39:33,760 Але я дзякую вам, хлопцы, за выдатны год. 885 00:39:33,760 --> 00:39:37,290 >> [Апладысменты] 886 00:39:37,290 --> 00:39:38,540 >> СПІКЕР: я мог бы плакаць. 887 00:39:38,540 --> 00:39:40,800