Читайте также:
|
|
Структура программы на языке программирования С
В отличие от ЯП Паскаль ЯП С не имеет жестко заданной структуры программы со всеми блоками и разделами. В целом программа состоит из функций, главной из которых является функция main. При запуске программы управление передается этой функции. С точки зрения ЯП Паскаль эта функция эквивалентна главному блоку BEGIN…END.
Так как ЯП С сам по себе является довольно простым языком программирования и не содержит даже операторов ввода\вывода, то основную часть языка С составляют его библиотечные функции. Эти функции группируются в различные библиотеки в зависимости от своего функционального назначения. Для того, чтобы использовать функции необходимо подключить соответствующую программу. Это осуществляется с помощью директивы препроцессора #include<имя библиотеки>. Подключение библиотек осуществляется в самом начале программы. Наиболее часто используемыми библиотеками являются:
· stdio.h – библиотека стандартного I\O,
· math.h – библиотека математических функций,
· conio.h – библиотека консольного I\O,
· stdlib.h – библиотека стандартных функций.
Часто библиотеки перекрывают друг друга: содержат одни и те же функции.
Таким образом, структуру простейшей программы можно представить в следующем виде: она состоит из двух частей. Первая часть – это радел подключений библиотек, а вторая часть – функция main, содержащая саму программу. Программа заключается в фигурные скобки, которые играют роль ключевых слов BEGIN и END в ЯП Паскаль.
Например, простейшая программа «Привет мир!» имеет вид:
#include<stdio.h>
void main()
{
printf(“Hello world!\n”);
}
Тело функции main состоит из операторов, которые записываются в импликативной (процедурной) форме. Каждый оператор завершается знаком «;». Все операторы языке С можно разделить на четыре группы:
1. Операторы объявлений типов и переменных;
2. Операторы присвоений, математических и логических операций;
3. Операторы вызова функций;
4. Операторы управления.
Система базовых типов данных
Прежде чем рассматривать операторы объявлений типов и переменных, необходимо рассмотреть систему базовых типов языка С.
Тип - это описание диапазона значений, которые может принимать переменная, указанного типа. Каждый тип данных характеризуется своим размером (количество байт занимаемых значением данного типа в памяти компьютера) и диапазоном принимаемых значений.
Любой язык программирования высокого уровня характеризуется набором своих типов. Все типы данных можно разделить на следующие виды:
· простые (скалярные) и сложные (векторные) типы;
· базовые (системные) и пользовательские типы.
К простым типам данных языков программирования высокого уровня обычно относятся: целые и вещественные числа, символы, строки, булевы типы. К сложным типам данных относятся: массивы, множества, перечисления, структуры, объединения, поля бит.
Базовые (системные) типы данных изначально заложены в языке программирования. Совокупность всех базовых типов данных языка программирования называют системой базовых типов. Пользовательские типы данных - типы, создаваемые пользователем языка (программистом) путем модификации базовых типов средствами самого языка программирования.
В языке С систему базовых типов образуют четыре типа данных:
· символьный,
· целочисленный,
· вещественный одинарной точности,
· вещественный двойной точности.
Символьный тип (char) предназначен для описания символьных или целочисленных значений. Размер значения данного типа составляет 1 байт, диапазон принимаемых значений от -128 до 127. Может рассматриваться как символ и как число (специфика языка программирования), т.е. не требует преобразования как в языке Pascal.
Целочисленный тип (int) предназначен для описания целочисленных значений. Размер значения данного типа зависит от разрядности системы (среды разработки) и составляет:
· в 16-ти разрядных системах - 2 байта (диапазон принимаемых значений от -32768 до 32767);
· в 32-ух разрядных системах - 4 байта (диапазон принимаемых значений от -2147483648 до 2147483647).
ПРИМЕЧАНИЕ: Так как 16-ти разрядные системы устарели, то в дальнейшем будем рассматривать только 32-ух разрядное представление целого числа.
Вещественный тип одинарной точности (float) предназначен для описания вещественных значений одинарной точности. Размер значения данного типа составляет 4 байта (23 бита - мантисса, 8 бит - порядок, 1 бит - знак числа), диапазон принимаемых значений ±3.4Е±38. Точность - до 7 знаков после запятой
Вещественный тип двойной точности (double) предназначен для описания вещественных значений двойной точности. Размер значения данного типа составляет 8 байт (52 бита - мантисса, 11 бит - порядок, 1 бит - знак числа), диапазон принимаемых значений ±1.7Е±308. Точность - до 17 знаков после запятой.
Помимо описанных типов данных в языке С предусмотрены две группы модификаторов типа:
· модификаторы знака: signed и unsigned,
· модификаторы размера: short и long.
Модификатор signed осуществляет преобразование целочисленных значений к знаковым числам. Используется совместно с типами char и int. Так как этот модификатор всегда используется по умолчанию, то указывать его необязательно.
Модификатор unsigned осуществляет преобразование целочисленных значений к незнаковым числам. Используется совместно с типами char и int. Преобразование осуществляется путем переноса бита знака числа в значащие разряды, модифицируя тем самым диапазон принимаемых значений. Тип unsigned char принимает диапазон значений от 0 до 255. А тип unsigned int:
· для 32-ух разрядных систем: от 0 до 4294967295 (232-1),
· для 16-ти разрядных систем: от 0 до 65535 (216-1).
Модификатор short осуществляет преобразование целого числа типа int к короткому целому:
· для 16-ти разрядных систем: используется по умолчанию;
· для 32-ух разрядных систем: преобразует к 2-ух байтному значению с диапазоном от -32768 до 32767.
Модификатор long осуществляет преобразование целого числа типа int к длинному целому:
· для 16-ти разрядных систем: преобразует к 4-ех байтному значению с диапазоном от -2147483648 до 2147483647;
· для 32-ух разрядных систем: используется по умолчанию.
Модификатор long также используется с вещественным типом двойной точности double, преобразуя последний к вещественному числу повышенной точности (формат сопроцессора) размером 10 байт (64 бит - мантисса, 15 бит - порядок, 1 бит - знак числа) и диапазоном ±3.4Е±4932.
В стандарте С99 было разрешено двукратное использование модификатора long для создания 64-ех разрядных целых чисел. Значение типа long long int имеет размер 8 байт и диапазон от -263 до 263-1.
Допускается совместное применение модификаторов типа из различных групп. Например, значение типа unsigned long long int имеет размер 8 байт и диапазон значений от 0 до 264-1.
Минимальные и максимальные значения всех базовых типов данных языка С можно узнать, используя их мнемонические обозначения, которые описаны в библиотеках (для изучения констант следует обратиться к соответствующему разделу помощи среды разработки):
limits.h - содержит диапазоны целочисленных значений,
float.h - содержит диапазоны вещественных значений.
Рассмотренные типы данных относятся к числовым и символьным типам. До появления стандарта С99 в языке С булев (логический) тип отсутствовал как таковой. Вместо логических значений использовались целочисленные значения, интерпретируемые следующим образом:
· 0 - логическая ложь (false),
· 1 или любое отличное от нуля - логическая истина (true).
В стандарте С99 был введен логический тип _Bool, размер которого составляет 1 байт. Для использования более привычных ключевых слов bool, true и false необходимо подключить библиотеку stdbool.h. Тем не менее, чаще всего используется старое представление логического типа (целочисленными значениями).
В отличие от многих языков программирования высокого уровня, строки как скалярный тип данных в языке С отсутствуют. Это обусловлено тем фактом, что язык С является системным. Строковые данные в языке рассматриваются как сложные типы данных.
Дата добавления: 2015-04-11; просмотров: 69 | Поможем написать вашу работу | Нарушение авторских прав |