Читайте также:
|
|
При выполнении программы могут производиться некоторые операции. Каждой операции соответствует знак операции. Знаки для некоторых операций приведены в таблице.
Знак операции | Операция | Знак операции | Операция | |
* | Умножение | = | Присваивание | |
/ | Деление | * = | Умножение с присваиванием | |
% | Остаток от деления | / = | Деление с присваиванием | |
+ | Сложение | <<= | Сдвиг влево с присваиванием | |
- | Вычитание | >>= | Сдвиг вправо присваиванием | |
<< | Сдвиг влево | + = | Сложение с присваиванием | |
>> | Сдвиг вправо | + + | Добавление единицы | |
< | Меньше | - - | Вычитание единицы | |
> | Больше | |||
<= | Меньше или равно | |||
4.2.3 Функции
В отличии от других языков программирования высокого уровня вся программа строиться только из функций.
Функция – это совокупность объявлений и операторов, предназначенных для решения определенной задачи. С использованием функций в языке СИ связаны три понятия: определение функции(описание действий, выполняемых функцией), объявление функции и вызов функции.
Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова.
В программе должна быть только одна функция с именем main (главная функция), и с этой функции, в каком бы месте программы она ни находилась, начинается выполнение программы.
Определение функции задает тип возвращаемого значения, имя (идентификатор) функции, типы и число формальных параметров, а также объявления переменных и операторы, называемые телом функции и определяющие действие функции.
Синтаксис для объявления функции:
nип_ возвращаемого_ значения имя_ функции (список формальных параметров)
{
Тело функции (список операторов)
}
Спецификатор типа функции задает тип возвращаемого значения и может задавать любой тип. Для функции, не возвращающей никакого значения, должен быть использован тип void, указывающий на отсутствие возвращаемого значения.
Список формальных параметров – это последовательность объявлений формальных параметров, разделенная запятыми. Формальные параметры – это переменные, используемые внутри тела функции.
Могут использоваться функции, не имеющие параметров. Они просто выполняются. Могут использоваться функции, не возвращающие значений. В этих случаях наличие круглых скобок обязательно, а вместо списка параметров и типа возвращаемого значения рекомендуется указать слово void.
Тело функции – это составной оператор, содержащий операторы, определяющие действие функции. Тело функции заключают в фигурные скобки.
Объявление функции имеет такой же вид, что и определение функции, с той лишь разницей, что тело функции отсутствует, и имена формальных параметров тоже могут быть опущены. Прототип – это явное объявление функции, которое предшествует ее определению.
Пример:
/*Прототип (объявление) функции с типом возвращаемого значения int и тремя параметрами, которые объявлены в скобках; в объявлении имена а,b,с можно не указывать.*/
int function (int a, int b, int c) //Объявление функции function, которая возвращает
// целое значение, т.к. перед именем функции стоит int
/* Определение функции; может быть написано где-нибудь в другом месте программы */
int function(int a, int, b, int c)
{
группа операторов //тело функции
}
При вызове функции ей передаются значения (фактические значения параметров), используемые во время выполнения функции.
Функция может возвращать некоторое (но только одно!) значение. Это возвращаемое значение и есть результат выполнения функции. Он, при выполнении программы, представляется в точку вызова функции.
Конкретный пример:
unsigned char s; //Объявление глобальной переменной s
sum (unsigned char a, unsigned char b) /* Определение функции сложения
с двумя параметрами (они объявлены)*/
{
s = a + b; // Оператор (тело функции)
}
void main (void) // Определение главной функции
{
unsigned char x = 5, y = 6, r1, r2; /* Объявление локальных переменных и
присвоение значений переменным x и y. */
sum(x,y); /* Вызов функции sum со значениями параметров
x = 5, y = 6. В функции sum параметр а получит значение 5,
параметр b получит значение 6. Результат (значение
переменной s) =11 */
r1 = s * 4; // Переменной r1 присвоено значение 11 * 4 = 44.
x = 10; y = 12; // Новые значения параметров
sum (x, y); // Следующий вызов функции sum. Результат s = 22.
r2 = s * 5; // Умножение и присвоение, т.е. r2 = 110.
}
Дата добавления: 2015-07-20; просмотров: 101 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Типы данных, объявление данных | | | Оператор if-else (ветвления ) |