Функции
Функция — это конструкция языка C, которая связывает составное оператор (тело функции) с идентификатором (имя функции). Выполнение любой программы на C начинается с функции main, которая либо завершается, либо вызывает другие функции, определённые пользователем или библиотекой.
// function definition.
// defines a function with the name "sum" and with the body "{ return x+y; }"
int sum(int x, int y)
{
return x + y;
}Функция определяется с помощью объявления объявления функции или определения определения функции.
Функции могут принимать ноль или более параметров, которые инициализируются из аргументов оператора вызова функции оператора вызова функции, и могут возвращать значение вызывающей функции с помощью оператора return.
int n = sum(1, 2); // parameters x and y are initialized with the arguments 1 and 2
Тело функции предоставляется в определении функции. Каждая не-встроенная(с C99) функция, используемая в выражении (если не не вычисляется), должна быть определена только один раз в программе.
Вложенных функций нет (за исключением случаев, разрешенных нестандартными расширениями компилятора): каждое определение функции должно располагаться на уровне файла, и функции не имеют доступа к локальным переменным вызывающей функции:
int main(void) // the main function definition
{
int sum(int, int); // function declaration (may appear at any scope)
int x = 1; // local variable in main
sum(1, 2); // function call
// int sum(int a, int b) // error: no nested functions
// {
// return a + b;
// }
}
int sum(int a, int b) // function definition
{
// return x + a + b; // error: main's x is not accessible within sum
return a + b;
}Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 6.7.6.3 Объявления функций (включая прототипы) (стр. 96-98)
- 6.9.1 Определения функций (стр. 113-115)
- Стандарт C11 (ISO/IEC 9899:2011):
- 6.7.6.3 Объявления функций (включая прототипы) (стр. 133-136)
- 6.9.1 Определения функций (стр. 156-158)
- Стандарт C99 (ISO/IEC 9899:1999):
- 6.7.5.3 Объявления функций (включая прототипы) (стр. 118-121)
- 6.9.1 Определения функций (стр. 141-143)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 3.5.4.3 Объявления функций (включая прототипы)
- 3.7.1 Определения функций
См. также
| Документация C++ по Объявлению функций |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/functions