1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> Виступаючий 1: Так що я відчуваю, що я, як правило, написати Е привіт світ або Е 3 00:00:04,010 --> 00:00:08,160 привіт відсотків з досить часто в контекстах , Де я хочу, щоб роздрукувати 4 00:00:08,160 --> 00:00:11,360 рядок, іноді питаючи Користувач частина цього рядка. 5 00:00:11,360 --> 00:00:14,980 Ну, не було б непогано, якби ми створили функція наше власне називається, 6 00:00:14,980 --> 00:00:19,900 сказати, ім'я друку, мета якого в житті просто надрукувати привіт кому 7 00:00:19,900 --> 00:00:24,560 так і те-то, прийнявши так і те-то як аргумент цієї функції? 8 00:00:24,560 --> 00:00:29,220 Ми можемо оголосити функцію самостійно так само, як ми можемо в порожньому таким чином. 9 00:00:29,220 --> 00:00:35,280 >> Іншими словами, припустимо, я хотів би Е своє ім'я і потім попросіть користувача 10 00:00:35,280 --> 00:00:39,470 для його або її ім'я з рядку з одно GetString. 11 00:00:39,470 --> 00:00:42,060 А потім я хочу викликати функцію називається ім'я друку 12 00:00:42,060 --> 00:00:44,340 проходження S в якості вхідних даних. 13 00:00:44,340 --> 00:00:47,770 >> Зараз, на жаль, немає функції називається ім'я друк в С або в 14 00:00:47,770 --> 00:00:48,950 CS50 бібліотека. 15 00:00:48,950 --> 00:00:51,220 Але незалежно від того, тому що ми може зробити це самі. 16 00:00:51,220 --> 00:00:54,560 Щоб оголосити функцію самостійно і потім реалізувати його, ми можемо просто зробити 17 00:00:54,560 --> 00:00:59,000 деякі можливості в цьому файлі і оголосити ця функція наступним чином, недійсними - 18 00:00:59,000 --> 00:01:01,900 що означає, що функції не насправді відбувається щось повернути, 19 00:01:01,900 --> 00:01:03,890 навіть якщо він матиме побічний ефект - 20 00:01:03,890 --> 00:01:08,030 друкувати ім'я, а потім давайте уточнимо в дужках, що ім'я друк очікує 21 00:01:08,030 --> 00:01:09,680 аргумент типу рядка. 22 00:01:09,680 --> 00:01:12,180 І взагалі, ми будемо думати з що в якості імені. 23 00:01:12,180 --> 00:01:15,140 >> І давайте відкриємо наш дужки і закрити нашу дужки. 24 00:01:15,140 --> 00:01:21,930 А потім Е всередині привіт кома Нова назва лінії кома відсотків с. 25 00:01:21,930 --> 00:01:24,570 Іншими словами, навіть якщо це Функція тільки один рядок коду, це 26 00:01:24,570 --> 00:01:27,290 робить зараз є якась вища Мета рівень для друку 27 00:01:27,290 --> 00:01:28,950 чиєсь ім'я з привітанням. 28 00:01:28,950 --> 00:01:33,115 >> Тепер усередині основної, зверніть увагу, що я називаючи ім'я друку, передаючи с. 29 00:01:33,115 --> 00:01:35,830 І тому я, здається, тепер є повна програма. 30 00:01:35,830 --> 00:01:38,650 Єдина різниця в тому, від інших ми написали, що не тільки робить 31 00:01:38,650 --> 00:01:42,480 ця програма вже головний, він також має Декларація і реалізація 32 00:01:42,480 --> 00:01:44,740 Назва друку, функція самостійно. 33 00:01:44,740 --> 00:01:49,505 >> Давайте тепер скомпілювати свою програму із зазначенням марки нульова функція, і запустити його з точки 34 00:01:49,505 --> 00:01:51,080 слеш нульову функцію. 35 00:01:51,080 --> 00:01:53,390 У відповідь на запит на моє ім'я Я введіть Давида. 36 00:01:53,390 --> 00:01:55,830 І я дійсно вітаюсь з "Привіт, Девід." 37 00:01:55,830 --> 00:02:00,160 >> Тепер виявляється, що я абсолютно свідомо заявив П.І.Б. вище основної, 38 00:02:00,160 --> 00:02:03,860 тим самим розповідаючи C заздалегідь, що така функція називається друку 39 00:02:03,860 --> 00:02:06,930 назвати так, щоб я міг використовувати пізніше в основний. 40 00:02:06,930 --> 00:02:11,610 Тепер, якби я замість помістити ім'я друк на дно моєму файлі, так само відверто, я 41 00:02:11,610 --> 00:02:15,310 ймовірно, слід зробити так, щоб основні залишки Перше, що я або 42 00:02:15,310 --> 00:02:18,450 інший користувач бачить в своєму коді, виходить, що мій код 43 00:02:18,450 --> 00:02:19,780 не збираєтеся компілювати. 44 00:02:19,780 --> 00:02:23,610 >> Зокрема, якщо я повернуся до мого вікно терміналу і запустити зробити функцію 45 00:02:23,610 --> 00:02:26,120 нулю зараз, зверніть увагу, що я кричав на. 46 00:02:26,120 --> 00:02:30,340 Якщо я прокрутки вгору в моєму вікні терміналу, Я буду бачити цю першу помилку в червоний, 47 00:02:30,340 --> 00:02:33,120 неявна декларація функцію друку. 48 00:02:33,120 --> 00:02:34,220 >> Тепер, що ж це значить? 49 00:02:34,220 --> 00:02:37,190 Ну, хоча я реалізував надрукувати ім'я в цьому файлі, у мене не 50 00:02:37,190 --> 00:02:40,080 реалізували його, перш ніж я маю використовував його в основний. 51 00:02:40,080 --> 00:02:43,160 Тепер, ми могли б повернутися до старого версія і поставити ім'я принт- 52 00:02:43,160 --> 00:02:44,450 Реалізація нагорі. 53 00:02:44,450 --> 00:02:48,730 >> Але я можу замість цього просто дають C натяк що є функція приїхати. 54 00:02:48,730 --> 00:02:55,390 Зокрема, вище основної можу заявити надрукувати ім'я так само, як я зробив раніше, але 55 00:02:55,390 --> 00:02:59,450 завершити лінію з комою, тим самим обіцяючи реалізувати, але ще не 56 00:02:59,450 --> 00:03:02,180 насправді реалізації функції називається ім'я друк. 57 00:03:02,180 --> 00:03:05,860 То у мене може бути основним у верхній частині мого файл, як я сподівався, і я можу насправді 58 00:03:05,860 --> 00:03:07,440 реалізувати ім'я друк внизу. 59 00:03:07,440 --> 00:03:12,860 >> Якби я зараз повертаюся до свого вікні терміналу і пересобрать нульову функцію із зазначенням марки, 60 00:03:12,860 --> 00:03:14,390 на цей раз він збирає. 61 00:03:14,390 --> 00:03:18,240 І якщо я запускаю його з точковою функції слеш нулю надання моє ім'я, я 62 00:03:18,240 --> 00:03:20,650 вітали як "Привіт, Девід." 63 00:03:20,650 --> 00:03:22,268