
- •3.2.4. Алфавит языка c, идентификаторы, ключевые слова, комментарии
- •3.2.5. Константы в c
- •3.2.6. Типы переменных в языке c и их объявление
- •3.2.7. Объявление простых переменных
- •3.2.8. Арифметические операторы и операторы присваивания
- •3.2.9. Преобразования типов
- •3.2.10. Операции отношения и логические операции
- •3.2.11. Условная операция
- •3.2.12. Стандартная библиотека языка c
- •3.2.13. Математические функции c
- •3.2.14. Форматированный вывод данных в c
- •3.2.15. Структура программы на языке c
3.2.15. Структура программы на языке c
Программа на языке C представляет собой совокупность следующих элементов:
директив препроцессора;
указаний компилятору;
определений функций;
объявлений переменных и функций;
выполняемых операторов.
Директивы препроцессора определяют действия по преобразованию текста исходной программы перед компиляцией.
Указания компилятору – это специальные инструкции для компилятора языка C, зависящие от используемого компилятора.
Объявления переменных задают имена и атрибуты переменной, а объявления функций задают их имена, типы возвращаемых значений и атрибуты формальных параметров.
Определение функции специфицирует тело (текст) функции, который представляет собой блок – последовательность операторов. Тело функции содержит объявления и/или выполняемые операторы. Началом блока служит символ "{", окончанием – символ "}". Определение функции имеет следующий синтаксис:
тип-возвращаемого-значения идентификатор-функции (параметр-1, параметр-2,…)
где тип-возвращаемого-значения – один из типов переменных C (например, int или float), идентификатор-функции – имя функции, параметр-1, параметр-2,… – параметры функции. Если функция имеет несколько параметров, они отделяются друг от друга запятыми. Если функции не передается никаких параметров, то в качестве единственного параметра (в соответствии со стандартом ANSI) задается ключевое слово void или просто пустые скобки.
В C недопустимо определение функции внутри другой функции, но можно определять блоки внутри функции.
Возвращаемое функцией значение определяется в теле функции с помощью оператора return (в теле функции может быть несколько операторов return). Оператор return имеет следующий синтаксис:
return выражение;
где выражение вычисляется и подставляется вместо вызова функции. Тип результата вычисления выражения должен совпадать с типом-возвращаемого-значения в определении функции.
Объявления переменных задают имена и атрибуты переменной, а объявления функций задают их имена, типы возвращаемых значений и атрибуты формальных параметров. Объявления функций (их называют также прототипами функций) могут находиться только вне определений функций. Переменные могут быть объявлены как вне определений функций, так и внутри функций или блоков. В первом случае переменные называются глобальными переменными или переменными верхнего уровня, поскольку область определения переменной в этом случае (ее называют также областью видимости переменной) – от точки объявления переменной до конца файла. Во втором случае переменные называются локальными переменными или переменными нижнего уровня. Область видимости локальных переменных – функция или блок, в котором они определены. В C все локальные переменные должны быть объявлены до первого выполняемого оператора функции или блока.
Выполняемые операторы определяют действия программы по реализации алгоритма ее работы.
Признаком окончания операторов объявлений и выполняемых операторов является символ ";".
Для того, чтобы программа на языке C была скомпилирована и выполнена, она должна содержать, по крайней мере, одно определение функции. Если программа содержит несколько функций, то среди них выделяется одна функция, которая должна иметь имя main. С нее начинается выполнение программы. Если программа содержит только одну функцию, то она и является главной (и должна иметь имя main).
Функция main возвращает целое значение (обычно при нормальном завершении программы в выражении в операторе return задается число 0). Пока будем считать, что в функцию main не передается никаких аргументов.
Если программа выполняется в интегрированной среде BorlandC++, то после выполнения оператора return окно выполнения программы автоматически закрывается. Чтобы этого не происходило, обычно перед оператором return обычно ставят оператор
getchar();
который вызывает функцию ввода символа. Эта функция, так же, как и функция printf(), находится в разделе stdio.h стандартной библиотеки C. В этом случае окно выполнения программы закрывается при вводе любого символа (или просто нажатия клавиши Enter). Иногда программа уже ожидает ввода символов. В этом случае необходимо два раза повторить вызов функции getchar().
Таким образом, общая структура (скелет) простой программы на языке C будет выглядеть следующим образом:
операторы #include
int main(void)
{
операторы объявления
выполняемые операторы
getchar ();
getchar ();
return 0;
}
Пример программы на языке C:
Вывести на дисплей результат вычислений по формуле:
при x=-0.951 и y=8.149.
/* Вызов головного модуля функций ввода-вывода */
#include <stdio.h>
/* Вызов головного модуля математических функций */
#include <math.h>
main() /* Описание главной функции */
{ /* Начало блока */
/* Описания и инициализация переменных */
float F, x=0.951, y=8.149;
const double pi=3.1415926;
/* Вычисление функции */
F=(pow(x,3)+1.0)/log(fabs(x))-
pow(sin(pi/4.0+0.5*y),2);
/* Печать исходных данных и результата */
printf("x=%f y=%f Функция F=%f\n",x,y,F);
} /* Конец блока */
На экран будут выведены следующие результаты:
x=0.951000 y=8.149000 Функция F=-38.001472