C: Функции

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

Наиболее часто используемой функцией, с которой вы уже знакомы, является функция main(), без которой не обходится ни одна программа.

  1. int main()
  2. {
  3.     return 0;
  4. }

Важным элементом объявления этой функции является идентификатор типа int, который устанавливает тип возвращаемого из нее значения. Также важной является инструкция return, позволяющая вернуть само значение. В случае функции main() возвращается целочисленное значение 0, которое указывает операционной системе на то, что программа успешно завершила свою работу.

Вызов функции осуществляется по ее имени.

myfunction();

Возврат значений

Как было сказано выше, инструкция return позволяет указать данные, которые будут возвращены после окончания работы функции. Каждая функция может возвращать произвольное значение.

При этом функция также может не возвращать ничего. В этом случае в качестве типа возвращаемого значения используется зарезервированное слово void.

  1. void display_message()
  2. {
  3.     printf(Hello worldn);
  4. }

Передача аргументов

В функцию может быть передано одно или несколько значений для последующей обработки. Это обстоятельство позволяет использовать один и тот же код функций для обработки различных данных.

  1. void calculate_tax(float subtotal)
  2. {
  3.     float total;
  4.     total = 0.175 * subtotal;
  5. }

Эта функция вызывается также по имени, причем входные значения записываются в скобках.

calculate_tax(3408.26);

Пример

В примере функции используются для сложения и вычитания заданных целочисленных значений.

  1. #include <stdio.h>
  2.  
  3. void output_sum (int sum);
  4.  
  5. int add_numbers (int a, int b)
  6. {
  7.     return a + b;
  8. }
  9.  
  10. int subtract_numbers (int a, int b)
  11. {
  12.     return a - b;
  13. }
  14.  
  15. int main()
  16. {  
  17.     int sum;
  18.    
  19.     sum = add_numbers(45, 74);
  20.     output_sum(sum);
  21.    
  22.     sum = subtract_numbers(66, 12);
  23.     output_sum(sum);
  24.    
  25.     return 0;
  26. }
  27.  
  28. void output_sum (int sum)
  29. {
  30.     printf("%in", sum);
  31. }

Загрузить исходный код примера