Определение функции задает имя функции, типы и число ожидаемых параметров, а также тип, возвращаемый функцией. Определение функции также содержит тело функции с объявлениями ее локальных переменных и операторы, которые определяют действия, выполняемые функцией.
Объявление функций: прототипы функций
| 
			 1  | 
			
			 
  | 
		
где,
returnDataType— возвращаемый тип данныхfunctionName— имя функцииdataType— тип данныхargName1...N— имена параметров функции (количество параметров неограниченно)
Смотрим пример объявления функции:
| 
			 1 2 3  | 
			
			 
 
 
  | 
		
В языках C и C++, функции должны быть объявлены до момента их вызова. Вы можете объявить функцию, при этом функция может возвращать значение или — нет, имя функции присваивает программист, типы данных параметров указываются в соответствии с передаваемыми в функцию значениями. Имена аргументов, при объявления прототипов являются необязательными:
| 
			 1  | 
			
			 
  | 
		
Иногда, объявление функции называют определением функции, хотя это не одно и то же.
Определение функций
| 
			 1 2 3 4  | 
			
			 
 
 
 
  | 
		
Рассмотрим определение функции на примере функции sum.
| 
			 1 2 3 4 5  | 
			
			 
 
 
 
 
  | 
		
В языках C и C++, функции не должны быть определены до момента их использования, но они должны быть ранее объявлены. Но даже после всего этого, в конце концов, эта функция должна быть определена. После этого прототип функции и ее определение связываются, и эта функция может быть использована.
Если функция ранее была объявлена, она должна быть определена с тем же возвращаемым значением и типами данных, в противном случае, будет создана новая, перегруженная функция. Заметьте, что имена параметров функции не должны быть одинаковыми.
| 
			 1 2 3 4 5 6 7 8  | 
			
			 
 
 
 
 
 
 
 
  | 
		
Вызов функций
После того, как функция была объявлена и определена, её можно использовать, для этого её нужно вызвать. Вызов функции выполняется следующим образом:
| 
			 1  | 
			
			 
  | 
		
где,
funcName— имя функции;arg1..2— аргументы функции (значения или переменные)
Примечание: функции могут не иметь параметров, тогда в круглых скобочках ничего писать не надо. Смотрим пример:
| 
			 1 2  | 
			
			 
 
  | 
		
Вызов функции выполняется записью её имени, а затем круглых скобочек (). Если функция принимает аргументы, то в круглых скобках передаются аргументы, в порядке, указанном в объявлении функции.
