- •6. Функции в языке с
- •6.1 Описание функции
- •Void main()
- •6.2 Вызов функции
- •6.3 Варианты описания и использования функций
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •7. Работа со строками
- •7.1 Способы описания строк в программе
- •7.2 Ввод-вывод строк
- •7.3 Функции для работы со строками
- •8. Структуры и объединения в языке с
- •8.1 Описание структур
- •8.2 Инициализация структур
- •8.3 Работа с элементами структур
- •8.4 Структуры и указатели
- •8.5. Битовые поля в структурах
- •Работа с битовыми полями:
- •8.6. Объединения
- •Работа с полями объединения
- •8.7. Отличие объединения от структуры
- •8.8. Применение объединений
- •Void main()
- •9. Файлы в языке c. Функции работы с файлами
- •A) чтение данных из файла
- •Б) запись данных в файл
- •Дополнительные функции для работы с файлами
- •10. Программирование в графическом режиме
- •Функции библиотеки graphics
- •Управление графической системой Управление графическим режимом производится с помощью следующих функций:
- •Черчение и заполнение
- •Управление цветом
- •Обработка ошибок в графическом режиме
- •Функции запроса состояния
- •Void main()
- •11. Директивы препроцессора
- •11.1. Директива #include
- •11.2. Директива #define
- •11.3. Директива #undef
- •12. Побитовые (поразрядные) операции
- •Использование побитовых операций
8.2 Инициализация структур
Одновременно с описанием переменных в виде структур, можно задавать полям (элементам) структур начальные значения:
TProd zp={“Компьютер P-IV 3000 MHz”, 2117, 3150.0, 5};
TProd mzp[5]={ {“Холодильник Nord 2910”,1521, 2130.0, 12},
{"Телевизор LG 21FX4RG”, 3462, 1175.0, 10},
.......
};
8.3 Работа с элементами структур
Для выделения из структуры отдельного элемента используется форма записи:
перем . имя_поля
где перем – это имя переменной, имеющей вид структуры (способы 1-3)
. - операция выделения из структуры (символ ‘точка’)
имя_поля – это элемент структуры
pr1.code
pr2.price
mpr[6].num
С элементами структур можно выполнять различные операции (ввод, вывод, присваивание, сравнение):
pr1.price=850.0;
scanf(“%d”, &pr1.num);
if(pr1.code = = pr2.code) ...;
puts(pr2.name);
8.4 Структуры и указатели
Для структур, описанных 1 или 2 способом можно создавать указатели на структуры:
TProd b,*ptr_b;
ptr_b=&b; /* присвоим указателю адрес структуры */
Для выделения элементов структуры через указатель используется форма записи
указатель->имя_поля (‘->’ записывается как ‘минус’‘больше’)
ptr_b->name
ptr_b->price
Можно использовать точку (‘.’):
(*ptr_b).price
Скобки нужны, так как операция . старше операции *.
void fs(TProd *ptx,...)
{
ptx->code=1311;
...
}
Вызов функции:
fs(&b,...);
Указатели на структуры часто используются как аргументы функции, для передачи в функцию только адреса структуры, а не всей структуры.
8.5. Битовые поля в структурах
В языке С целую переменную длиной 2 или 4 байта можно представить в виде структуры с разбиением на группы двоичных разрядов (битовые поля).
Форма записи: (для 3-го способа)
struct
{
тип1 имя1: N1;
тип2 имя2: N2;
...
типk имяk: Nk;
} перем1, перем2, ...;
где тип – это тип битового поля, может быть int или unsigned;
имя – обозначение поля;
Ni – длина битового поля, количество двоичных разрядов
Ni=16 (2 байта) или 32 (4 байта).
перем – это имя переменной с битовыми полями
Если группа битов не используется, то в структуре ей не назначается имя.
тип: Ni;
Для таких структур можно также использовать 1-й способ (через шаблон структуры) или 2-й способ (через typedef) описания.
Пример:
struct
{
int p1 :4;
unsigned p2 :3;
int :3;
unsigned p3 :2;
unsigned p4 :4;
} vb;
Работа с битовыми полями:
vb.p1=10;
If (vb.p3==0) ... ;
min P1==-7 (1111) max P1==7 (0111)
min P4==0 (0000) max P4==15 (1111)
8.6. Объединения
Объединение – это конструкция языка С, которая позволяет размещать на одном участке памяти данные разных типов.
Форма записи:
union
{
тип1 имя1;
тип2 имя2;
...
типN имяN;
} перем1, перем2, ...;
где тип – обозначение типа поля (int, float, char,...)
имя – обозначение поля
перем – имя переменной, которая является объединением.
Пример:
union
{
char f1;
int f2;
float f3;
double f4;
} a, b;
Также, как и структуры, объединения можно описывать 3-мя способами: 1 (через шаблон объединения), 2 (через typedef), 3 (одновременное описание шаблона объединения и объявление переменных).
