[Powered by Google Translate] CHRIS Гербер: функція являє собою серію кроків в велику програму, яка, як правило, призначені для виклику кілька разів і з багатьох інших місць у програми. При створенні функції C, однією з вимог є вказати тип значення, що повертається. Найпростішим випадком є ​​ситуація, коли викликає Код не пов'язана з результатом функції. Це може бути випадок, коли ми друкуємо дані користувачів дисплеєм, як і з Printf. У цьому випадку, ми можемо оголосити значення, що повертається до типу недійсними. Використання недійсними просто повідомляє компілятору, що не значення буде повернено. Давайте подивимося, як це виглядає. Давайте припустимо, що у нас є функція під назвою say_hello, що приймає один аргумент. Ми будемо передавати його ім'я людини, і він буде відображати вітання на екрані. Назва буде типу символ *. І ми вкажемо, що в якості аргументу. Моє додаток не потрібно знати, що було надруковано або, якщо це була надрукована. Таким чином, повернене значення буде мати тип недійсними. Ця функція може друкувати на екрані з командою Е ("Hello,% з \ п », Ім'я);. Привітання буде відображатися і управління буде передано назад в викликає код. Єдине, що слід зазначити, це те, що якщо тип значення, що повертається, є нікчемним, Вам не потрібно включати повернення Заява в функції. Якщо ви вирішили включити один, не включають значення, що повертається в якості аргументу. У деяких випадках має сенс повернутися значення з функції. Давайте припустимо, що ми писали функція називається add_floats. Ми будемо передавати його двома аргументами, як поплавки, називаються першою та другою. І він скаже нам, що сума цих поплавків. Ми знаємо, що якщо ми додамо два поплавця разом, то результат буде плавати. Виходячи з цього, ми вибираємо тип значення, що повертається з плаваючою крапкою. Ця функція буде виконувати цей розрахунок і повернути Значення в заяві, як повернення перший + другий;. Коли управління передається назад в викликає код, Отримане значення тепер доступна для цього коду. Ми можемо зберігати це значення наступним чином: поплавець результат = add_floats (3,14, 1,62 ). Результат в цьому випадку буде тепер містити значення 4,76. Нагадаємо, що значення з плаваючою точкою є неточними. Так що, якщо це був фінансовий розрахунок, використовуючи долари і центів, ми хочемо розглянути точний тип даних, таких як Int і виконувати обчислення в копійки. Ще один випадок, де ми хотіли б повернути значення з функція, коли ми хочемо знати, якщо функція була успішним. Якщо вона не була успішною, ми можемо також хочуть знати, який тип Сталася помилка. Давайте припустимо, що ми намагаємося відкрити файл на диску для підрахунку Кількість символів в ньому. Якщо файл не може бути відкритий, ми хочемо, щоб бути в змозі зупинити і повідомити користувачеві про проблему. Ми назвемо нашу count_file_chars функції, і це буде приймати один аргумент. Ми пройдемо в ім'я файлу за допомогою символ * називається ім'ям. Ця функція може виглядати наступним чином. У цьому прикладі, ми очікуємо, що кількість повернувся в 0 або більше. Це залишає нас негативні цілі числа, щоб використовувати в якості дозорних значення. Дозорні значення це просто особливе значення, яке не законні дані, але ніяк передачі інформації. Тут, якщо я повернуся -1 до зухвалого коду, я фактично відправляє повідомлення, що сталася помилка намагається отримати доступ до файлу. Я міг би перевірити, що повертається значення, щоб визначити, якщо мої виклик функції пройшов успішно. Якщо кількість була 0 або більше, я хотів би знати Кількість символів у файлі. Якщо, проте, ця цифра була менше 0, я міг би просто друк, що проблема не відбулося. Один компроміс, щоб розглянути, що за рахунок резервування всіх негативні значення, як дозорні значення, припускаючи, що це 32-розрядне число, я, по суті, забрали близько 2000000000 можливих значень, що повертаються. Типи Повертане значення є одним з найбільш важливих елементів виклики функцій. Сподіваюся, цей короткий огляд допоміг вам думати про три основних типи: порожнеча, результат значення, і дозорні значення, і коли кожен з трьох може бути доречним в коді. Дякую за перегляд.