русс | укр

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

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

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

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


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

Определение функций

В С определены три производных типа:

§ массив

§ указатель

§ функция.

Функцию следует рассматривать с двух точек зрения:

§ функция – это один из производных типов данных,

§ функция – это минимальный исполняемый модуль программы на языке С.

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

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

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

Здесь

<тип> -

§ void (для функций, не возвращающих значения),

§ обозначение типа возвращаемого функцией значения.

<имя_функции> -

§ main для основной (главной) функции программы,

§ произвольно выбираемое программистом имя (идентификатор).

<спецификация параметров> -

§ это либо пусто,

§ либо список формальных параметров, каждый элемент которого имеет вид:

<обозначение_типа> <имя_параметра>

По сравнению с уже известными способами определения формальных параметров, существует возможность завершения списка параметров запятой с последующим многоточием «, …». Это означает, что при обращении к функции может быть указано большее число фактических параметров. Так, известные функции printf и scanf имеют прототипы:

int printf (const char *format, …);

int scanf (const char *format, …);

Указанные функции позволяют применять теоретически неограниченное количество фактических параметров. Обязательным является только параметр char *format – «форматная строка», внутри которой с помощью спецификаций преобразования определяется реальное количество параметров, участвующих в обменах.

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

Для завершения (прерывания) работы функции служит оператор return. Существует две формы этого оператора:

§ return; // Возврат без передачи результата

§ return <выражение>; // Возврат значения

Первая форма используется для функций, перед именем которой в определении указан тип void. Для функций этого типа оператор return можно в тексте программы не писать вовсе – компилятор встроит его автоматически перед закрывающей фигурной скобкой тела функции.

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

Описание функций

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

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

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

double Func(int n, double x);

double Func(int, double);

Просмотров: 632


Вернуться в оглавление



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


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

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

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


 


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

 
 

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