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

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

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

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Оголошення

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

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

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

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

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

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

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Під час додавання нецілих значень очікується точний результат. Однак через невідповідність типів результат є помилковим.

main.c

main.c

copy
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

main.c

copy
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 у наведених вище сценаріях.

Note
Примітка

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

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

question mark

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

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

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

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

Свайпніть щоб показати меню

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

main.c

main.c

copy
123456
func_type func_name(arguments_placeholder) { // The core functionality of the function // The resulting outcome after function execution return function_output; }

Оголошення

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

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

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

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

main.c

main.c

copy
12345678
int sumFunction() { int number1 = 6; int number2 = 10; int result = number1 + number2; return result; }

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

main.c

main.c

copy
12345678
int sumFunction() { double number1 = 6.985; double number2 = 231.465; double result = number1 + number2; return result; // This will lead to an incorrect result }

Під час додавання нецілих значень очікується точний результат. Однак через невідповідність типів результат є помилковим.

main.c

main.c

copy
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

main.c

copy
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 у наведених вище сценаріях.

Note
Примітка

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

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

question mark

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

Select the correct answer

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

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

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

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