1 00:00:07,260 --> 00:00:09,180 [Powered by Google Translate] Давайце пагаворым аб структур. 2 00:00:09,180 --> 00:00:12,130 Структуры даюць нам спосаб групоўкі кучу зменных разам 3 00:00:12,130 --> 00:00:14,350 у прыгожы пакет. 4 00:00:14,350 --> 00:00:17,020 Гэта, напэўна, прасцей за ўсё ўбачыць прыклад прама зараз, 5 00:00:17,020 --> 00:00:20,030 таму мы гаворым структуры, 6 00:00:20,030 --> 00:00:23,340 Затым адкрыццё фігурнай дужкай, 7 00:00:23,340 --> 00:00:26,630 і ў гэтай структуры, мы будзем мець Int ўзросту, 8 00:00:28,920 --> 00:00:31,350 сімвал назвы *, 9 00:00:31,350 --> 00:00:34,670 вось і ўсё. 10 00:00:37,350 --> 00:00:40,650 Гэта можа здацца дзіўным кропку з коскай пасля фігурнай дужкі, 11 00:00:40,650 --> 00:00:43,620 але гэта на самай справе неабходна з структурам. 12 00:00:43,620 --> 00:00:46,270 Любы дапушчальны тып можа пайсці ў структуры азначэнні. 13 00:00:46,270 --> 00:00:49,530 Тут мы выкарыстоўвалі Int і сімвал *, 14 00:00:49,530 --> 00:00:52,610 але Вы можаце таксама выкарыстоўваць масіў, з, скажам, 100 элементаў 15 00:00:52,610 --> 00:00:54,910 ці нават у іншай структуры. 16 00:00:54,910 --> 00:00:56,960 Калі вы выкарыстоўваеце структур у C, 17 00:00:56,960 --> 00:00:58,430 Вы ствараеце новыя тыпы 18 00:00:58,430 --> 00:01:00,860 з калекцыі іншых тыпаў. 19 00:01:00,860 --> 00:01:02,620 Тут мы робім новы тып 20 00:01:02,620 --> 00:01:05,060 з цэлага ліку і сімвал *. 21 00:01:05,060 --> 00:01:07,400 Як мы ўбачым пазней, тып структуры 22 00:01:07,400 --> 00:01:10,700 У чым эквівалентная любы іншы тып вы прывыклі. 23 00:01:10,700 --> 00:01:13,310 Звычайна, я буду параўнання, як тып структуры 24 00:01:13,310 --> 00:01:15,790 падобны на цэлае тыпу. 25 00:01:15,790 --> 00:01:18,520 У той час як мы пісалі код сапраўдны C, 26 00:01:18,520 --> 00:01:20,320 гэта не вельмі карысна, 27 00:01:20,320 --> 00:01:22,340 і ляск дасць нам папярэджанне. 28 00:01:22,340 --> 00:01:24,970 Памятаеце, як структуры і яе падобныя? 29 00:01:24,970 --> 00:01:26,710 Ну, мы ў асноўным проста сказаў 30 00:01:27,840 --> 00:01:30,060 INT, 31 00:01:30,060 --> 00:01:33,140 якое не з'яўляецца вельмі карысным лініі. 32 00:01:33,140 --> 00:01:35,760 Так што давайце на самай справе абвясціць зменную гэтага тыпу 33 00:01:35,760 --> 00:01:38,760 , Даўшы яму імя перад кропкай з коскі. 34 00:01:42,170 --> 00:01:45,000 Мы будзем называць зменную студэнта. 35 00:01:48,190 --> 00:01:51,350 Цяпер мы абвясцілі зменную званую студэнта 36 00:01:51,350 --> 00:01:53,980 з тыпам задаецца структурай. 37 00:01:53,980 --> 00:01:56,730 Як нам дабрацца да зменных ўнутры структуры? 38 00:01:56,730 --> 00:01:59,040 Тэхнічна, імёны для такіх зменных 39 00:01:59,040 --> 00:02:01,070 з'яўляюцца яе членамі. 40 00:02:01,070 --> 00:02:04,000 Каб атрымаць доступ да любога канкрэтнага члену у студэнцкай структуры, 41 00:02:04,000 --> 00:02:06,440 Вы дадаеце кропку на імя зменнай, 42 00:02:06,440 --> 00:02:08,860 варта імя члена вы хочаце. 43 00:02:08,860 --> 00:02:11,690 Дык вось, толькі 2 сапраўды магчымасцямі 44 00:02:11,690 --> 00:02:17,760 з'яўляюцца student.age 45 00:02:17,760 --> 00:02:24,460 і student.name. 46 00:02:24,460 --> 00:02:26,820 І мы можам зрабіць нешта накшталт 47 00:02:26,820 --> 00:02:30,320 student.age = 12 48 00:02:30,320 --> 00:02:39,310 і student.name = студэнта. 49 00:02:39,310 --> 00:02:42,580 А што, калі мы хацелі зрабіць другі студэнт? 50 00:02:42,580 --> 00:02:44,760 Вы можаце падумаць, каб скапіяваць і ўставіць гэтыя радкі 51 00:02:44,760 --> 00:02:48,110 і змяніць студэнт студэнт 2 ці нешта, 52 00:02:48,110 --> 00:02:50,090 і што будзе працаваць, 53 00:02:50,090 --> 00:02:52,670 але тэхнічна, студэнт і студэнтка 2 54 00:02:52,670 --> 00:02:54,540 не маюць такога ж тыпу. 55 00:02:54,540 --> 00:02:56,940 Бачыце, вы не зможаце прызначыць іх адзін з адным. 56 00:02:56,940 --> 00:02:58,560 Гэта таму, што да гэтага часу, 57 00:02:58,560 --> 00:03:00,950 ваша структура была ананімнай. 58 00:03:00,950 --> 00:03:02,290 Мы павінны даць яму імя. 59 00:03:02,290 --> 00:03:04,420 Каб зрабіць гэта, мы ўстаўляем назву структуры 60 00:03:04,420 --> 00:03:06,950 пасля слоў структуры. 61 00:03:09,440 --> 00:03:11,170 студэнт, 62 00:03:11,170 --> 00:03:14,680 наступным вызначэннем. 63 00:03:16,500 --> 00:03:18,940 Мы ўсё яшчэ можам неадкладна абвясціць зменную тыпу 64 00:03:18,940 --> 00:03:21,570 Пабудуем студэнт, як мы рабілі гэта раней. 65 00:03:24,320 --> 00:03:28,360 Мы будзем называць яго S1 66 00:03:28,590 --> 00:03:30,760 Даючы структуру імя, 67 00:03:30,760 --> 00:03:33,050 Цяпер мы можам выкарыстоўваць структуры студэнта 68 00:03:33,050 --> 00:03:36,950 амаль дакладна так жа, мы хацелі б выкарыстоўваць Int. 69 00:03:36,950 --> 00:03:39,580 Такім чынам, мы можам аб'явіць зменную тыпу студэнт структуры, 70 00:03:39,580 --> 00:03:42,360 накшталт 71 00:03:42,360 --> 00:03:49,500 Структура студэнт S2. 72 00:03:51,020 --> 00:03:55,130 Як і масівы, структуры забяспечваюць сінтаксіс кантэкстнага ініцыялізацыі, 73 00:03:55,130 --> 00:03:58,670 такім чынам, мы можам сказаць, структура студэнт S2 74 00:03:58,670 --> 00:04:01,420 роўна 75 00:04:01,420 --> 00:04:06,040 левай фігурнай дужкай 3, S2. 76 00:04:09,210 --> 00:04:12,600 Тут, S2.age будзе 3, 77 00:04:12,600 --> 00:04:15,910 і S2.name будзе паказваць на S2. 78 00:04:15,910 --> 00:04:19,149 Падумайце, што вы можаце зрабіць з цэлага тыпу 79 00:04:19,149 --> 00:04:22,460 і большасць з іх можна зрабіць з тыпам студэнта структуры. 80 00:04:22,460 --> 00:04:26,060 Мы можам выкарыстоўваць структуры студэнта як тып параметру функцыі. 81 00:04:26,060 --> 00:04:28,790 Мы можам выкарыстоўваць структуры студэнта ў новай структуры. 82 00:04:28,790 --> 00:04:31,010 Мы можам мець паказальнік на структуру студэнта. 83 00:04:31,010 --> 00:04:33,540 Мы можам зрабіць памер структуры студэнта. 84 00:04:33,540 --> 00:04:35,510 Struct студэнтаў з'яўляецца адным з відаў 85 00:04:35,510 --> 00:04:38,030 як Int з'яўляецца тыпам. 86 00:04:38,030 --> 00:04:40,540 Мы таксама можам прызначыць S1 і S2 87 00:04:40,540 --> 00:04:43,760 паколькі абодва маюць аднолькавы тып, так што мы можам зрабіць 88 00:04:44,390 --> 00:04:47,540 S1 = S2. 89 00:04:47,540 --> 00:04:50,430 Што адбудзецца, калі мы робім 90 00:04:50,430 --> 00:04:55,300 S1.age = 10? 91 00:04:56,340 --> 00:04:58,880 Ці S2 змены на ўсіх? 92 00:04:58,880 --> 00:05:02,800 Зноў жа, думаю структуры гэтак жа, як рэгулярныя цэлыя лікі. 93 00:05:02,800 --> 00:05:05,590 Калі задаць некаторыя Int X некаторай Y Int, 94 00:05:05,590 --> 00:05:08,970 як X = Y 95 00:05:08,970 --> 00:05:10,850 , А затым змяніць X, 96 00:05:10,850 --> 00:05:14,230 як і ў X + +, 97 00:05:14,230 --> 00:05:17,020 Y зменіцца наогул? 98 00:05:17,020 --> 00:05:20,980 Y не мяняецца тут, і таму ні адзін не робіць S2 вышэй. 99 00:05:20,980 --> 00:05:24,120 S2.age яшчэ 3. 100 00:05:24,120 --> 00:05:27,350 Але ўлічыце, што пры прызначэнні 1 структуры да іншай, 101 00:05:27,350 --> 00:05:30,300 усе паказальнікі па-ранейшаму паказваюць на адно і тое ж, 102 00:05:30,300 --> 00:05:32,260 так як яны былі проста скапіяваныя. 103 00:05:32,260 --> 00:05:34,300 Калі вы не хочаце, каб паказальнікі для сумеснага выкарыстання, 104 00:05:34,300 --> 00:05:36,100 Вам прыйдзецца ўручную справіцца з гэтым, 105 00:05:36,100 --> 00:05:39,780 магчыма, malicking адзін блок памяці для аднаго з паказальнікаў паказвае на 106 00:05:39,780 --> 00:05:42,120 і капіявання дадзеных на. 107 00:05:42,120 --> 00:05:45,540 Гэта можа быць раздражняльным, каб напісаць структура студэнтаў ва ўсім свеце. 108 00:05:45,540 --> 00:05:48,730 Выкарыстанне тыпу вызначэнне, мы можам зрабіць 109 00:05:51,630 --> 00:05:55,850 Тып выразнасці 110 00:05:55,850 --> 00:05:58,830 Структура 111 00:05:58,830 --> 00:06:01,270 і мы будзем называць яго вучнем. 112 00:06:05,620 --> 00:06:08,360 Цяпер мы можам выкарыстоўваць студэнтаў ва ўсім свеце 113 00:06:08,360 --> 00:06:11,090 што мы прывыклі выкарыстоўваць структуру студэнта. 114 00:06:11,090 --> 00:06:13,410 Гэты тып ДЕФа ананімныя структуры 115 00:06:13,410 --> 00:06:15,750 і называе яго вучнем. 116 00:06:15,750 --> 00:06:18,220 Але калі мы будзем таксама трымаць студэнтаў ідэнтыфікатар 117 00:06:18,220 --> 00:06:22,380 побач са словам структуру, як і ў ЬурейеЕ студэнт структуры, 118 00:06:27,670 --> 00:06:31,590 мы маглі б выкарыстоўваць абодва студэнта структуры і студэнтаў ўзаемазаменныя цяпер. 119 00:06:31,590 --> 00:06:34,060 Яны нават не павінны мець тое ж самае імя. 120 00:06:34,060 --> 00:06:36,710 Мы маглі б увесці вызначэнне структуры студэнта Боба 121 00:06:36,710 --> 00:06:38,950 , А затым пабудуем студэнта і Бобу 122 00:06:38,950 --> 00:06:41,270 бы быць ўзаемазаменнымі тыпаў. 123 00:06:41,270 --> 00:06:44,050 Незалежна ад тыпу DEF, 124 00:06:44,050 --> 00:06:46,750 мы павінны ідэнтыфікатар наступнага на структуру 125 00:06:46,750 --> 00:06:48,250 калі вызначэнне структуры 126 00:06:48,250 --> 00:06:50,450 рэкурсіўна. 127 00:06:50,450 --> 00:06:52,620 Напрыклад, 128 00:06:52,620 --> 00:06:56,140 Тып вызначэнне структуры вузла 129 00:06:56,140 --> 00:07:01,200 і ён будзе вызначаны як Int вал 130 00:07:01,200 --> 00:07:05,420 і яна будзе мець паказальнік, які паказвае на іншую структуру вузла., 131 00:07:05,420 --> 00:07:09,490 як ў структуры вузла * наступны. 132 00:07:09,490 --> 00:07:13,670 І тады мы будзем называць яго вузлоў. 133 00:07:15,490 --> 00:07:18,020 Гэтая структура з'яўляецца рэкурсіўнай, 134 00:07:18,020 --> 00:07:21,450 Паколькі вызначэнне структуры вузла ўтрымоўвае ў сабе 135 00:07:21,450 --> 00:07:24,200 паказальнік на структуру вузла. 136 00:07:24,200 --> 00:07:27,740 Звярніце ўвагу, што мы павінны сказаць, структура вузла * Наступны 137 00:07:27,740 --> 00:07:30,690 Усярэдзіне вызначэння структуры вузла, 138 00:07:30,690 --> 00:07:33,620 так як вызначэнне тыпу яшчэ не скончыўся, каб дазволіць нам спрасціць гэтую 139 00:07:33,620 --> 00:07:36,210 проста вузел * наступны. 140 00:07:36,210 --> 00:07:39,260 Вы даведаецеся больш пра структуры падобная на гэтую 141 00:07:39,260 --> 00:07:41,750 пры працы са звязанымі спісамі і дрэвамі. 142 00:07:41,750 --> 00:07:44,130 А як наконт структур у функцыі? 143 00:07:44,130 --> 00:07:46,800 Гэта таксама цалкам дапушчальна. 144 00:07:46,800 --> 00:07:49,430 Мы маглі б 145 00:07:49,430 --> 00:07:53,630 ануляваць функцыі 146 00:07:53,630 --> 00:07:55,930 , Якая прымае ў якасці аргументу, 147 00:07:55,930 --> 00:07:59,590 Студэнт з 148 00:07:59,590 --> 00:08:02,790 і робіць нешта з гэтым студэнтам. 149 00:08:05,270 --> 00:08:08,450 І тады мы можам перадаць яго ў якасці студэнта структура наступным чынам. 150 00:08:08,450 --> 00:08:12,850 Func з S1, чым раней. 151 00:08:12,850 --> 00:08:15,230 Структура паводзіць сябе 152 00:08:15,230 --> 00:08:18,460 дакладна так, як цэлае будзе, калі перадаецца ў функцыю. 153 00:08:18,460 --> 00:08:21,510 Func атрымлівае копію S1 154 00:08:21,510 --> 00:08:23,690 і таму не можа змяніць S1; 155 00:08:23,690 --> 00:08:27,110 , А толькі копія, якая захоўваецца ў С. 156 00:08:27,110 --> 00:08:30,010 Калі вы хочаце функцыю, каб мець магчымасць змяніць S1, 157 00:08:30,010 --> 00:08:33,000 функцыі неабходна будзе прыняць студэнта * S, 158 00:08:33,000 --> 00:08:36,570 і вам давядзецца прайсці S1 па адрасе, вось так. 159 00:08:37,549 --> 00:08:41,100 Студэнцкія * S, функцыі і S1. 160 00:08:41,100 --> 00:08:44,760 Там яшчэ адна прычына, каб прайсці па адрасе тут. 161 00:08:44,760 --> 00:08:48,030 Што, калі наша структура ўтрымоўвала 100 палёў? 162 00:08:48,030 --> 00:08:51,250 Кожны раз, калі мы пераходзім студэнта функцый, 163 00:08:51,250 --> 00:08:55,770 наша праграма павінна скапіяваць ўсе гэтыя 100 палёў у аргуменце S функцый, у 164 00:08:55,770 --> 00:08:59,320 нават калі ён ніколі не выкарыстоўвае пераважная большасць з іх. 165 00:08:59,320 --> 00:09:02,700 Таму, нават калі функцыя не плануецца змяненне студэнта, 166 00:09:02,700 --> 00:09:05,170 калі ўсё яшчэ можа быць каштоўным для перадачы па адрасе. 167 00:09:05,170 --> 00:09:08,990 Добра, што, калі мы хочам стварыць паказальнік на структуру? 168 00:09:08,990 --> 00:09:11,130 Мы маглі б зрабіць нешта накшталт 169 00:09:11,130 --> 00:09:17,580 Студэнт * S 170 00:09:17,580 --> 00:09:20,980 роўна таНос 171 00:09:20,980 --> 00:09:26,600 Памер студэнта. 172 00:09:30,450 --> 00:09:33,590 Звярніце ўвагу, што памер ўсё яшчэ працуе тут. 173 00:09:33,590 --> 00:09:37,260 Так як жа нам цяпер атрымаць доступ да ўзросту член 174 00:09:37,260 --> 00:09:39,640 блока, які паказвае на S? 175 00:09:39,640 --> 00:09:42,300 Вы маглі б спачатку падумаць, каб зрабіць 176 00:09:42,300 --> 00:09:47,970 * S.age = 4, 177 00:09:47,970 --> 00:09:50,220 але гэта не зусім працуе. 178 00:09:50,220 --> 00:09:52,940 Так як гэта сапраўды будзе інтэрпрэтавацца як 179 00:09:52,940 --> 00:09:57,740 * S.age у дужках = 4, 180 00:09:57,740 --> 00:10:00,160 які нават не кампіляцыі, 181 00:10:00,160 --> 00:10:03,600 Так як S не з'яўляецца структурай або, хутчэй, паказальнік на структуру, 182 00:10:03,600 --> 00:10:06,270 і таму кропка тут працаваць не будзе. 183 00:10:06,270 --> 00:10:08,860 Мы маглі б зрабіць 184 00:10:08,860 --> 00:10:13,760 (* S). Узрост = 4 185 00:10:13,760 --> 00:10:16,790 але дужках можа раздражняць і заблытанай. 186 00:10:16,790 --> 00:10:19,880 На шчасце, у нас ёсць спецыяльны аператар стрэлка 187 00:10:19,880 --> 00:10:22,350 які выглядае прыкладна так 188 00:10:22,350 --> 00:10:28,860 S-> узростам = 4. 189 00:10:28,860 --> 00:10:31,600 Гэтыя 2 спосабу спасылкай ўзросту 190 00:10:31,600 --> 00:10:33,270 эквівалентныя 191 00:10:33,270 --> 00:10:36,870 і мы сапраўды не спатрэбіцца стрэлка аператара, 192 00:10:36,870 --> 00:10:39,300 але ён робіць рэчы выглядаюць лепш. 193 00:10:39,300 --> 00:10:43,050 Так як S з'яўляецца паказальнікам на некаторы блок памяці, які змяшчае структуру, 194 00:10:43,050 --> 00:10:47,820 Вы можаце думаць аб узросце S> як ісці за паказальнікам стрэлкі 195 00:10:47,820 --> 00:10:50,250 і захапіць ўзрост членаў. 196 00:10:50,250 --> 00:10:53,750 Дык чаму мы павінны заўсёды выкарыстоўваць структуры? 197 00:10:53,750 --> 00:10:57,560 Гэта вызначана можна сысці толькі з прымітыўнымі цэлых лікаў, 198 00:10:57,560 --> 00:10:59,050 сімвалы, паказальнікі і да т.п. 199 00:10:59,050 --> 00:11:01,550 што мы прывыклі; 200 00:11:01,550 --> 00:11:03,340 замест S1 і S2 і раней, 201 00:11:03,340 --> 00:11:06,290 Мы маглі б мець age1, age2, name1 і name2 202 00:11:06,290 --> 00:11:09,120 Усе на асобных зменных. 203 00:11:09,120 --> 00:11:11,390 Гэта нармальна, толькі з 2 студэнтамі, 204 00:11:11,390 --> 00:11:13,310 Але што, калі ў нас было 10 з іх? 205 00:11:13,310 --> 00:11:15,540 А што, калі замест таго, каб толькі 2 поля, 206 00:11:15,540 --> 00:11:17,720 Студэнт структуры было 100 палёў? 207 00:11:17,720 --> 00:11:21,240 GPA, курсы, колер валасоў, падлогу і гэтак далей. 208 00:11:21,240 --> 00:11:25,790 Замест усяго 10 структур, нам трэба 1000 асобных зменных. 209 00:11:25,790 --> 00:11:28,360 Акрамя таго, разгледзець функцыю 210 00:11:28,360 --> 00:11:32,270 , Якая прымае, што структура з 100 палёў з адзіным аргументам 211 00:11:32,270 --> 00:11:34,350 і выводзіць ўсе палі. 212 00:11:34,350 --> 00:11:36,320 Калі мы не будзем выкарыстоўваць структуру, 213 00:11:36,320 --> 00:11:38,540 кожны раз, калі мы называем гэтую функцыю, 214 00:11:38,540 --> 00:11:41,460 Мы павінны перадаць на ўсе 100 зменных, 215 00:11:41,460 --> 00:11:44,430 і калі ў нас ёсць 100 зменных для студэнтаў 1, 216 00:11:44,430 --> 00:11:47,020 і 100 зменных для студэнтаў 2, 217 00:11:47,020 --> 00:11:50,540 Мы павінны быць упэўненыя, што мы выпадкова не перадаць некаторыя зменныя з студэнт 1 218 00:11:50,540 --> 00:11:52,910 і некаторыя зменныя са студэнтаў 2. 219 00:11:52,910 --> 00:11:55,710 Гэта немагчыма зрабіць, што памылка з структурай, 220 00:11:55,710 --> 00:11:59,010 так як ўсе 100 зменных, якія змяшчаюцца ў адзіным пакеце. 221 00:11:59,010 --> 00:12:02,050 Літаральна за пару Заключныя заўвагі: 222 00:12:02,050 --> 00:12:04,870 Калі вы зразумелі ўсё да гэтага моманту, выдатна. 223 00:12:04,870 --> 00:12:07,900 Астатняя частка відэа проста дзеля паўнаты. 224 00:12:07,900 --> 00:12:11,010 Паколькі структуры можа ўтрымліваць любы тып паказальніка, 225 00:12:11,010 --> 00:12:14,220 яны таксама могуць трымаць паказальнікі на функцыі. 226 00:12:14,220 --> 00:12:17,040 Калі вы знаёмыя з аб'ектна-арыентаваным праграмаваннем, 227 00:12:17,040 --> 00:12:21,790 гэта дае магчымасць выкарыстоўваць структуры праграм у аб'ектна-арыентаваным стылі. 228 00:12:21,790 --> 00:12:24,500 Яшчэ на паказальнікі на функцыі ў іншы час. 229 00:12:24,500 --> 00:12:27,760 Акрамя таго, часам вы можаце мець 2 структуры 230 00:12:27,760 --> 00:12:30,220 вызначэння якіх залежаць адзін ад аднаго. 231 00:12:30,220 --> 00:12:32,320 Напрыклад, 232 00:12:32,320 --> 00:12:35,470 мы маглі б мець структуру, 233 00:12:35,470 --> 00:12:38,580 якая вызначаецца як 234 00:12:38,580 --> 00:12:41,910 паказальнік на структуру B, 235 00:12:41,910 --> 00:12:47,180 Структура B * X, 236 00:12:47,180 --> 00:12:50,470 і зараз мы можам ёсць структура B 237 00:12:53,890 --> 00:12:56,280 якая вызначаецца як паказальнік 238 00:12:56,280 --> 00:12:59,180 на структуру, 239 00:12:59,180 --> 00:13:03,640 Структура * Y. 240 00:13:07,230 --> 00:13:09,060 Але гэта не будзе кампілявацца, 241 00:13:09,060 --> 00:13:14,110 так як структура B не існуе, у той час, структура складаецца. 242 00:13:14,110 --> 00:13:17,600 І калі мы будзем мяняць структуру і структуру B, 243 00:13:17,600 --> 00:13:20,100 Затым мы проста пакінулі з той жа праблемай; 244 00:13:20,100 --> 00:13:22,640 гэты час, з будуем не існуе. 245 00:13:22,640 --> 00:13:24,720 Каб вырашыць гэтую праблему, мы можам напісаць 246 00:13:24,720 --> 00:13:29,290 Структура B; 247 00:13:29,290 --> 00:13:32,460 Перад вызначэннем структуры A. 248 00:13:32,460 --> 00:13:35,590 Гэта называецца наперад дэкларацыі. 249 00:13:35,590 --> 00:13:38,590 Гэта проста дазваляе кампілятару вядома, што 250 00:13:38,590 --> 00:13:42,040 Структура B з'яўляецца дапушчальным тыпам, які будзе цалкам вызначана пазней гэтага тэрміну ці ў іншым месцы. 251 00:13:42,040 --> 00:13:45,980 Мяне клічуць Боб Боуден, і гэта CS50. 252 00:13:45,980 --> 00:13:48,980 [CS50.TV]