АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Синтаксис объявления (--заголовка, --прототипа ) функции. Оператор return

Читайте также:
  1. Not a return ticket.
  2. Аппаратчик-оператор экологических установок
  3. Арифметический оператор присваивания
  4. Артефакты как базовые элементы материальной культуры, их виды и функции.
  5. В 3. Маркетинг: сущность, цели, принципы и основные функции.
  6. Вакуоли, химический состав, биологические функции.
  7. Государство как основной институт политической системы общества: признаки, структура, функции.
  8. Деньги и их функции. Спрос и предложение на деньги. Денежная масса и денежные агрегаты. Равновесие на денежном рынке.
  9. Деньги и их функции. Финансовые активы и их ликвидность.
  10. Деньги: понятие, основные функции. Спрос на деньги для сделок и для активов. Структура денежной массы (предложения денег): М1, М2, М3. Денежное обращение (М.Фридмен).
  11. Договорные отношения в туризме. Работа туроператоров с поставщиками туристических услуг и партнёрами
  12. Зрительные функции.

С понятиям ф-ции связано:

1) объявление (заголовок, прототип)

2) описание (определение)

3) вызов ф-ции

1) прототип нужен компилятору, если описание идет ниже вызова

Область видимости ф-ции от обьявления до конца файла

Все параметры позиционные (не ключевые), есть парам-ы по умолчанию (нах-я в конце, можно не писать)

[<спецификация>]<тип_рез> <идентификатор>([список_парам]);

Специф-я: например, extern – внешнее (по умолч.)

Список парам: может быть без имен, важно сколько и порядок типов.

Примеры:

double sum1(int, float);

float sum2(double *, int);

char * message(char * s1, char c);

void show(void);

int f1(int k, char *, …); //ф-ция имеет переменное число парам, типы которых не контролируются в отличии от фиксированных парам-ов

printf(char * format, …);

2) описание:

<тип_рез-а> <идентификатор> (<список_ парам>)

{…

[return <выражение>;] //-если не void, управление передается в точку возврата (туда где вызывали), если на return не попали, то в рез-те получим мусор

}

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

int f1(float t)

{char * mes; // существует только когда работает

//эта ф-ция

return mes; //-error

}

int * f2 (int k)

{int m = k*10;

Int k;

//return &m; - bad (error, но компилятор не выдаст

//ошибки, т.к. синтаксической ошибки нет)

}

Локальные переменные ф-ции размещаются в стеке, после окончания выполнения ф-ции стек-поинтер перейдет в начало стека, и область память, отводившаяся на лок. перем. снова станет «свободной».

Допускается:

int * f2 (k)

int k

{…

}

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

Размер массива передается как правило с дополнительным парам-ом, т.к. ни сама ф-ция, ни сам массив информацию по его размеру получить не смогут.

3)Вызов ф-ции имеет следующий формат:

выражение1 ([список выражений]);

не обязательно отдельный оператор

например:

t = fabs (sin(x)) + 2 * r - 1.5;

суперпозиция ф-ций

В отличие от паскаля, нет разделения на ф-ции и процедуры. Процедура в с – ф-ция, возвращающая void.

Мб ф-ция, без возврата и параметров:

getch();

clrscr();

char c = clrscr();

Зн-ем выражения1 должен быть адрес ф-ции (идентификатор либо указатель на ф-цию).

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

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


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)