[Powered by Google Translate] Функції є ділянки коду, використовувані в більш широкої програми
для виконання певного завдання.
Вони також відомі як процедури, підпрограми та підпрограми,
так як вони насправді просто міні-програм в рамках програми.
Навіть якщо ви не помітили,
Ви зовсім виразно використовував функції вже якщо ви програмували на мові C.
Коли ви пишете матеріал на екран за допомогою Printf,
ви насправді за допомогою функції називаються Printf.
Крім того, GetInt і GetString функції, які CS50 надає для вас.
Як програмісти, ми використовуємо функції для цілого ряду причин.
>> Наявність функції для виконання спільних завдань, таких як написання на екрані
і пропонуючи користувачеві для введення економить нам час при програмуванні.
Це не потрібно писати код, щоб зробити ті ж самі речі
так як вони вже зробили для нас.
Це навіть не нам необхідно зрозуміти, як саме ці функції працюють усередині країни.
Замість цього, ми просто повинні знати, як використовувати або називаємо їх в наших програмах.
Це також корисно, щоб написати функції у великих програмах
Навіть якщо ви не плануєте мати інші використовують їх,
просто ділити великі завдання.
Таким чином, ви даєте структури в коді так само, як ви могли б дати структуру есе,
і з дуже великими проектами ви включите кілька людей
працювати над різними частинами в той же час
оскільки зрозуміло, де робота однієї людини закінчується, а інший починається.
>> Функції як правило, працюють на 1 або більше входів, відомий як аргументи або параметри,
перетворення цих вкладів у вихідне значення, яке потім повертається.
Однак, це також можливо мати функції, які не використовують ніяких вхідних аргументів
і не повертаються вихід.
Гаразд, вистачить з пухнасті речі.
Давайте подивимося на деякі реальні функції в C.
>> Тут у нас є функція називається квадратною, що, вірите чи ні,
обчислює квадрат вхід.
Давайте проаналізуємо синтаксис його.
Перше слово, яке ви бачите на функцію, INT,
визначає тип значення, що повертається функції, тобто, типу C вихідний функції.
Ця функція буде виводити значення з типом Int.
Наступне слово, яке ви бачите, є ім'я функції, квадратного в цьому випадку.
Іменування функції належним особливо важливо
так як це, ймовірно, найбільш помітним документації, що функція робить.
Це може бути прохолодно, щоб назвати цю функцію Shazam або Booyah,
але це не говорить нам нічого про те, що функція робить.
>> Після імені функції приходять входу у функцію, аргументами.
Вони перераховані в круглих дужках
як з їх тип і ім'я для використання їх в тілі функції.
Площа займає всього 1 аргумент, внутр до площі,
який я вирішив дати назву х.
На цьому закінчується оголошенням функції прототипу.
Фігурні дужки інші функції
позначають початок і кінець тіла функції,
визначення самої функції.
Площа досить проста функція.
Він отримав тільки 1 лінію, так як все, що ми повинні зробити, це помножити х сама по собі.
Слово повернення визначає вихідне значення і тригери кінці функції.
Щоб використовувати квадратні функції, ми повинні надати відповідні входи
, А потім захопити вихід.
Тут ви бачите декілька способів зробити це.
Ми можемо передати в сирому Int, як і 6, або ми можемо передати в змінну як.
Зверніть увагу, що кожного разу, коли ми називаємо площі,
ми фіксуємо результат в змінну, а потім роздрукувати його.
Тим не менш, у нас немає для зберігання значення, що повертається в змінній, а потім роздрукувати.
Ми могли б просто відправити його прямо на Printf, як ми робимо, коли ми квадрат 10,
але це не означає, що ми не маємо доступу до повертаним значенням квадрат 10
в інших місцях в коді.
Давайте подивимося на ще один простий приклад.
>> На цей раз ми будемо підводити 2 поплавця разом, так що ми можемо бачити, що функція виглядає
коли він отримав 2 входи, а не тільки 1.
Як ви можете бачити, це не сильно відрізняється.
Все, що нам зробити, це додати у 2-й аргумент, поплавок імені б,
у списку аргументів через кому, щоб відокремити його від першого аргументу, плавати.
Таким чином, наші площі та сумою функції досить легко зрозуміти
тому що вони еквівалентні функції, які ви бачили до цього в математичному класі.
Тепер, давайте подивимося на функцію, яка трохи відрізняється.
Замість повернення значення, вона змінює стан.
Це відомо як має побічних ефектів.
У цій програмі функція printf_fudd_style
має повертаний тип, що ми раніше не бачили, недійсними.
>> Порожнеча використовуються для говоримо, що функція не повертає нічого.
Є ніяких змінних типу порожнеча,
так що якщо ви спробуєте повернути щось з функції, як printf_fudd_style,
компілятор буде кричати на вас.
Усередині printf_fudd_style, ми бачимо, що в той час як функції досі виконує завдання,
а саме, перехід усіх грн для Ws,
точка функції полягає в зміні рядка, а потім роздрукувати його на екрані,
зміною стану програми замість повернення результату.
За допомогою цієї функції дуже схожий використовуючи наші площі та суми функцій,
крім ми не зберегти результат у змінній або передати його на іншу функцію
так як немає результату говорити.
Тому, коли ми скомпілювати і запустити наш Elmer Fudd програми,
Ви бачите, що "Ти шахрай кролика!" перетвориться право
"Ви wascally Wabbit!"
>> Нарешті, є ще 1 функція варто обговорювати
так як ви використовуєте це в кожній програмі C ви коли-небудь написаних, основний.
Головна функція так само, як будь-який інший.
Це є повернення тип, ім'я, список аргументів, і тіло.
Тип значення, що повертається основних завжди INT,
і це Int використовується для передачі стану програми, коли він закінчиться.
>> Хіба це успішно працювати, або ж це скінчиться рано через помилки?
Повертаючись до нуля вказує на успішне перспективі,
і повернення будь ненульове значення вказує на помилку.
В залежності від того, яку програму ви пишете,
повернення різні коди для різних помилок може бути корисним
для людей, які використовують вашу програму пізніше.
Мережа аргументи трохи складніше.
>> Список аргументів може бути або порожньою,
які ми вказуємо в письмовому вигляді порожнечі в круглих дужках,
або списку може мати 2 аргументи: Int і масив символів S *.
Вони використовуються, коли ваша програма має наміру використовувати
Аргументи, що передаються в командному рядку, коли програма викликається.
Int аргумент зазвичай називають агдс,
і це дорівнює довжині масив символів *, відомий як ARGV.
Argv містить аргументи командного рядка передаються в програму.
В іншому Коротше кажучи, ми поговоримо про те, як використовувати ці змінні більш докладно.
На даний момент, ви можете сміливо заявити основний в будь-якому випадку.
Я зазвичай вибирають, щоб написати це короткий шлях, без аргументів, коли це можливо.
>> Тепер, коли ви знаєте, як писати функції,
Ви знаходитесь добре на Вашому шляху до розробки більш великих і складних програм.
Мене звати Нейт Хардісон. Це CS50.