 Оголошення, Тип і Повернення
Оголошення, Тип і Повернення
З попереднього уроку ви дізналися основну будову функцій:
main.c
123456func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }
Оголошення
Перед використанням функції її необхідно оголосити. Виклик функції до її оголошення призведе до помилки.
Можна оголосити всю функцію одночасно з її визначенням (як показано вище) або використати прототип, про який буде згадано як бонус наприкінці цього розділу.
Типи функцій та значення, що повертаються
Тип функції повідомляє компілятор про тип даних результату функції. Наприклад, якщо наша функція обчислює суму двох цілих чисел, то очікується, що результатом буде ціле число.
main.c
12345678int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }
Невідповідність між типом даних і типом, що повертається, може призвести до некоректної роботи функції або навіть всієї програми.
main.c
12345678int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }
Під час додавання нецілих значень очікується точний результат. Однак через невідповідність типів результат є помилковим.
main.c
1234567891011121314151617#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; 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).
Правильний варіант виглядає так:
main.c
1234567891011121314151617#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }
Це означає, що результат функції можна безпосередньо присвоювати змінним/масивам або навіть передавати іншим функціям. Прикладом цього є використання результату з функцією printf у наведених вище сценаріях.
Форматний специфікатор для чисел з плаваючою комою — %f.
Варто також зазначити, що функція може містити кілька операторів return, кожен з яких виконується за різних умов.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain more about function prototypes?
What happens if I use the wrong return type in my function?
Can you give an example of a function with multiple return statements?
Awesome!
Completion rate improved to 2.63 Оголошення, Тип і Повернення
Оголошення, Тип і Повернення
Свайпніть щоб показати меню
З попереднього уроку ви дізналися основну будову функцій:
main.c
123456func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }
Оголошення
Перед використанням функції її необхідно оголосити. Виклик функції до її оголошення призведе до помилки.
Можна оголосити всю функцію одночасно з її визначенням (як показано вище) або використати прототип, про який буде згадано як бонус наприкінці цього розділу.
Типи функцій та значення, що повертаються
Тип функції повідомляє компілятор про тип даних результату функції. Наприклад, якщо наша функція обчислює суму двох цілих чисел, то очікується, що результатом буде ціле число.
main.c
12345678int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }
Невідповідність між типом даних і типом, що повертається, може призвести до некоректної роботи функції або навіть всієї програми.
main.c
12345678int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }
Під час додавання нецілих значень очікується точний результат. Однак через невідповідність типів результат є помилковим.
main.c
1234567891011121314151617#include <stdio.h> int func() { double number1 = 6.985; // Not `int` nubmer double number2 = 231.765; // Not `int` number double result = number1 + number2; 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).
Правильний варіант виглядає так:
main.c
1234567891011121314151617#include <stdio.h> double func() { double number1 = 6.985; // `int` nubmer double number2 = 231.765; // `int` number double result = number1 + number2; return result; // Output of function } int main() { // Print the result of our function printf("Expected Result is 238.75, and result is %f\n", func()); return 0; }
Це означає, що результат функції можна безпосередньо присвоювати змінним/масивам або навіть передавати іншим функціям. Прикладом цього є використання результату з функцією printf у наведених вище сценаріях.
Форматний специфікатор для чисел з плаваючою комою — %f.
Варто також зазначити, що функція може містити кілька операторів return, кожен з яких виконується за різних умов.
Дякуємо за ваш відгук!