русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Определение, описание и вызов функции


Дата добавления: 2013-12-23; просмотров: 2484; Нарушение авторских прав


Термины

Директива определения типа typedef

Производный тип задается с помощью * [] struct union, иногда удобно производному типу присвоить одно простое имя, это можно сделать с помощью typedef. При этом после директивы typedef формат определения нового типа соответствует формату определения переменной данного типа, но введенное имя является не именем переменной, а именем нового типа.

Пример:

struct A { … };

A * m[10]; // Массив из 10 указателей на структуру A

Можно поступить по- другому:

typedef A *M[10]; // M – имя нового типа, задающего

// массив из 10 указателей на структуру A

M m; // Массив из 10 указателей на структуру A

 

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

Объединение - это производный тип языка Си, включающий в себя множество элементов, элементы могут быть различных типов и располагаются в оперативной памяти, начиная с одного и того же адреса (т.е. элементы или поля накладываются друг на друга).

Битовое поле- это поле структуры или объединения, представляющее собой целое или беззнаковое целое значение (любые стандартные целые типы), занимающее в памяти фиксированное число битов (не более, чем соответствующий целый тип), размер битового поля задается в битах и не обязательно кратен целому числу байтов.

 

Лекция 7. Функции в Си (Си++)

Функция– это именованная совокупность объявлений и операторов, предназначенная для выполнения некоторой отдельной подзадачи.

Использование функции позволяет выполнять, так называемую функциональную декомпозицию задачи (предметной области). Большая сложная задача разбивается на относительно простые подзадачи и для решения каждой подзадачи разрабатывается функция. Функции можно отлаживать отдельно друг от друга.



Функция в Си основное понятие, любая выполняемая программа содержит, по крайней мере, одну функцию, так называемую главную функцию, с именем main (В Windows приложении эта функция имеет имя WinMain).

 

Следует различать определение функции, описание функции (заголовок) и вызов функции.

Формат определения функции:

[<модификаторы>] <тип_возвращаемого_значения> <имя_функции>([<спецификация_формальных_параметров>])

{ <тело_функции> }

Спецификация формальных параметров в круглых скобках определяет параметры функции, один параметр отделяется от другого запятой. Спецификация формальных параметров имеет следующий формат:

<тип1> [<имя1>][=<умалчиваемое_значение>], <тип2> [<имя2>][=<умалчиваемое_значение>],…

Формальные параметры функции могут отсутствовать в этом случае после имени функции идут пустые скобки (или в скобках может быть ключевое слово void). Имя формального параметра может отсутствовать, если этот параметр пока не используется в теле функции, но зарезервирован на будущее.

Тело функции является блоком, в нем локализованы формальные параметры заголовка. Важным оператором тела функции является оператор return, наличие данного оператора обязательно, если тип возвращаемого значения отличен от void. Если функция возвращает некоторое значение, то она может вызываться внутри оператора- выражения в любом месте, где разрешено использовать значение данного типа.

В качестве модификаторов функции может присутствовать модификатор класса памяти extern или static. По умолчанию у функции класс памяти extern. Если функция определена с ключевым словом static, то функцию можно использовать только в том файле, где она определена.

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

[<модификаторы>] <тип_возвращаемого_значения> <имя_функции>

(<спецификация_формальных_параметров>);

Примечание. Стандартные заголовочные файлы stdio.h, stdlib.h, math.h и др. содержат описания или заголовки стандартных функций, поэтому их необходимо подключать, если требуется вызывать стандартные функции, описанные в заголовочных файлах.

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

Пример простой функции, которая возвращает сумму двух свои параметров:

double summa(double x, double y)

{

return x+y;

}

Описание или заголовок этой функции имеет вид:

double summa(double, double);

 

Вызов функции имеет следующий формат (вызов функции часто выполняется внутри оператора- выражения):

<имя_функции>(<список_факт_параметров>);

При вызове функции вместо формальных параметров подставляются фактические параметры (переменные, константы, указатели и др.) и выполняются операторы тела функции со значениями фактических параметров.

Следует отметить, что функция может вызываться «как функция», когда используется возвращаемое значение и функция вызывается внутри выражения:

S=summa(a, b); // Переменной S присваивается значение, возвращаемое функцией

Функция может вызываться «как процедура», когда возвращаемой значение не используется (если оно вообще не нужно, можно объявить тип void):

printf(“x=%f”, x); // Функция printf возвращает значение типа int, но оно не используется

 



<== предыдущая лекция | следующая лекция ==>
Struct B | Передача параметров в функции по значению


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.