42. Определение функций. Программирование с использованием функций. Возвращение значения: оператор return.
Функция – это самостоятельная единица программы, созданная для решения конкретной задачи. Как и переменные функции надо объявлять. Функцию необходимо объявить до ее использования.
Каждая функция языка С имеет имя и список аргументов (формальных параметров).
Функции могут возвращать значение. Это значение может быть использовано далее в программе. Так как функция может вернуть какое-нибудь значение, то обязательно нужно указать тип данных возвращаемого значения. Если тип не указан, то по умолчанию предполагается, что функция возвращает целое значение (типа int). После имени функции принято ставить круглые скобки. В этих скобках перечисляются параметры функции, если они есть. Если у функции нет параметров, то при объявлении и при описании функции вместо <список параметров> надо поставить void – пусто.
Основная форма описания функции имеет вид:
тип <имя функции> (список параметров)
{
тело функции
}
Объявление (прототип) функции имеет вид:
тип <имя функции> (список параметров);
Вызов функции делается следующим образом:
<имя функции> (параметры);
или
<переменная>=<имя функции>(параметры);
Почему надо объявлять функцию до использования? Дело в том, что для правильной работы кода функции машине надо знать тип возвращаемого значения, количество и типы аргументов. При вызове какой-либо функции копии значений фактических параметров записываются в стек, в соответствии с типами указанными в ее прототипе. Затем происходит переход в вызываемую функцию.
Пример вызова функции, которая будет печатать строку «вызвали функцию» на экран.
#include<stdio.h>
void main(void) //точка входа в программу
{
void function1(void) //объявление функции
function1(); //вызов функции
}
/*Описание функции*/
void function1(void) // заголовок функции
{ // Начало тела функции
printf(“Вызвали функцию\n”);
} //Конец тела функции
Результатом работы программы будет строка, напечатанная на экране.
В теле функции main() мы объявили функцию function1(), затем ее вызвали. В теле функции function1() мы вызываем функцию printf().
Тип возвращаемого значения у функции function1 void (пусто). Это значит, что функция не будет возвращать никакого значения.
Функции возвращающие значение.
Функции с параметрами.
Функции языка С могут иметь параметры. Эти параметры передаются в функцию и там обрабатываются. В списке параметров для каждого параметра должен быть указан тип.
Пример правильного списка параметров: function(int x, char a, float z). Пример неправильного списка параметров: function(int x, a, float z).
Формальные параметры – параметры, которые мы объявляем в заголовке функции при описании.
Фактические параметры – параметры, которые мы подставляем при вызове функции.
Оператор return.
Оператор return завершает выполнение функции, в которой он встретился, и передает управление в вызывающую программу, в точку вызова.
Оператор имеет следующий формат:
return [(выражение)];
Выражение обычно заключается в круглые скобки, хотя это не обязательно. Выражение может быть как некоторой константой, так и вычисляемым выражением любого допустимого типа.
Оператор return в теле функции может быть записан несколько раз. Значение выражения, вычисленное в операторе return, возвращается в вызывающую функцию в качестве результата выполнения функции. Если функция возвращает результат, то ее вызов можно использовать в качестве операнда в выражении:
t=func(a,b)+sum(mas,k);
Если в операторе return отсутствует выражение (т.е. записано return;), то вызывающей функции никакое значение явно не возвращается. При отсутствии оператора return управление в точку вызова будет передано после выполнения последнего оператора функции. В этом случае функция также явно не возвращает результат, перед именем такой функции в ее прототипе и определении должно быть записано слово void.
Если функция определена как возвращающая результат, а в операторе return выражение отсутствует, то выдается сообщение об ошибке.
- 1.История создания языка с.
- 2. Основные характеристики алгоритмического языка Си.
- 3. Область применения и системы программирования языка Си.
- 4. Исходные и объектные модули, процессы компиляции и связывания.
- 5. Алфавит языка Си. Лексемы
- 6. Ключевые слова языка Си.
- 7. Знаки пунктуации, специальные символы и знаки операций в языке Си.
- 8. Идентификаторы в языке Си.
- 9. Виды констант в языке Си.
- 10. Константы целые и вещественные.
- 11. Символьные константы.
- 12. Строковые константы.
- 13. Типы данных: целый, вещественный, символьный.
- 14. Представление данных в оперативной памяти. Размеры данных.
- 15. Правила определения переменных в программе. Инициализация переменных.
- 16. Определение именованных констант. Спецификация типов.
- 17. Выражения: математические, логические, текстовые.
- 18. Унарные операции.
- 19. Классификация бинарных операций.
- 20. Арифметические и поразрядные операции.
- 21. Операции сдвига.
- 22. Операции отношения, логические операции.
- 23. Операции присваивания.
- 24. Условная трехместная операция.
- 25. Преобразование типов.
- 26. Приоритет операций и порядок вычисления выражений.
- 27. Функция форматированного вывода printf.
- 28. Функция форматированного ввода информации scanf.
- 29. Понятие оператора. Оператор простой и составной, блок.
- 30. Виды управляющих конструкций программы.
- 31. Операторы ветвления, условный оператор.
- 32. Метки и переходы. Пустой оператор. Оператор выбора (переключатель).
- 33. Структурные схемы циклических процессов.
- 34. Операторы цикла: цикл с заданным числом повторений.
- 35. Операторы цикла: цикл с предусловием.
- 36. Операторы цикла. Цикл с постусловием.
- 37. Операторы прерывания и продолжения цикла. Вложенные циклы.
- 38. Одномерные и многомерные массивы, их инициализация.
- 39. Указатели. Связь между указателями и массивами.
- 40. Операции над указателями.
- 41. Массивы переменных размеров. Функции использования динамической памяти.
- 42. Определение функций. Программирование с использованием функций. Возвращение значения: оператор return.
- 43. Аргументы функции: формальные и фактические. Передача аргументов, стек.
- 44. Указатели на функции. Массивы указателей на функции. Указатель на функцию в качестве аргумента другой функции.
- 45. Рекурсивные программы.
- 46. Функции для работы со строками: сравнение, копирование.
- 47. Функции для работы со строками: поиск в строке.
- 48. Функции для работы со строками: преобразование форматов.
- 49. Декларация структур.
- 50. Инициализация и доступ к элементам структуры.
- 51. Вложенные структуры и массивы структур.
- 52. Указатели на структуры.
- 53. Использование структур в качестве аргументов функций.
- 54. Объединения и битовые поля.
- 55. Локальные и глобальные переменные.
- 56. Классы памяти.
- 57. Автоматические и регистровые переменные.
- 58. Внешние и статические переменные, особенности их реализации.
- 59. Символические константы: #define. Включение файла: #include.
- 60. Директивы препроцессора: #if, #ifdef, #ifndef, #else, #endif.
- 61. Файлы. Двоичное и текстовое представление файлов.
- 62. Стандартные файлы (потоки).
- 63. Понятие потока.
- 64. Открытие и закрытие файлов.
- 65. Операции файлового ввода-вывода.
- 66. Позиционирование. Указатель чтения –записи в файле.
- 67. Организация низкоуровневого ввода-вывода.
- 68. Функции обслуживания файлов низкоуровневого ввода-вывода.