Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Оголошення, Тип і Повернення | Функції
Основи C
course content

Зміст курсу

Основи C

Основи C

1. Вступ
2. Дані
3. Оператори
4. Оператори управління
5. Функції
6. Вказівники

bookОголошення, Тип і Повернення

З нашого попереднього уроку ви дізналися основну анатомію функцій:

Оголошення

Перед використанням функції її потрібно оголосити. Виклик функції до її оголошення призведе до помилки.

Ви можете або оголосити всю функцію одночасно з її визначенням (як показано вище), або використовувати прототип, про який ми поговоримо як бонус в кінці цього сегмента.

Типи функцій та значення, що повертаються

Тип функції інформує компілятор про тип даних результату функції. Наприклад, якщо наша функція обчислює суму двох цілих чисел, ми очікуємо отримати ціле число як результат:

Примітка

Якщо тип функції не вказано, компілятор за замовчуванням вважає його int.

Невідповідність між типом даних і типом, що повертається, може призвести до некоректної роботи функції (або навіть всього програми). Ось приклад: давайте додамо два нецілих числа, але встановимо, що функція повертає цілий тип:

Коли додаються нецілі значення, ви очікуєте точний результат. Але через невідповідність типів результат є помилковим.

c

Main

copy
123456789101112131415161718
#include <stdio.h> int func() { double number1 = 6.985; // not int nubmer double number2 = 231.765; // not int number double result = number1 + number2; // not int number too return result; // output of function } int main() { // Call and immediately printing the result of our function printf("Expected Result is 238.75, but result is %d\n", func()); return 0; }

Два основні фактори сприяють цій помилці:

  • Неправильний тип повернення (повинен бути double);
  • Використання неправильного специфікатора формату (%d) у функції printf() (повинен бути %f).

Правильна версія буде:

c

Main

copy
123456789101112131415161718
#include <stdio.h> double func() { double number1 = 6.985; // int nubmer double number2 = 231.765; // int number double result = number1 + number2; // int number too return result; // output of function } int main() { // We immediately print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }

Примітка

Результат будь-якої функції зазвичай буде числовим або рядковим значенням.

Це означає, що ми можемо безпосередньо призначити результат функції змінним/масивам або навіть передати його іншим функціям. Прикладом цього є те, як ми використовували результат з функцією printf у наведених вище сценаріях.

Примітка

%f - це специфікатор формату для чисел з плаваючою комою.

Також варто зазначити, що функція може містити кілька операторів return, кожен з яких активується за різних умов.

Ви створили функцію `count`, як ви викликали б її в межах функції `main`?

Ви створили функцію count, як ви викликали б її в межах функції main?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 2
some-alt