Структуры и объединения

Пример 1 - Объединения

Внимательно изучите и наберите в редакторе исходный текст предлагаемой программы:

$ vim union.c

union.c.png

Cкомпилируйте и запустите программу:

$ gcc union.c -o union
$ ./union

Проанализируйте вывод программы.

Пример 2 - Применение структур в базах данных

Внимательно изучите и наберите в редакторе текст программы:

$ vim struct.c

struct.c.png

Скомпилируйте и запустите приложение:

$ gcc struct.c -o struct
$ ./struct

Выведите на экран текстовый файл, созданный программой:

$ cat base.dat

Как вы думаете, какими недостатками обладает написанная программа? Как их устранить?

Пример 3 - Применение структур для решения сетевых задач

Для адресации устройств в компьютерных сетях на сетевом уровне используют IP-адреса. Согласно протоколу IPv4 (Internet Protocol version 4) IP-адрес представляет собой четыре байта, которые обычно пишут в виде десятичных чисел, разделённых точками. Логический 32-битный IP-адрес состоит из двух частей: первая идентифицирует сеть, а вторая - устройство в сети. Для идентификации сети используются первые n (n <= 32) битов IP-адреса, остальные адресуют устройство. Количество битов, задающих адрес сети определяется сетевой маской. Как и IP-адрес, маска состоит из 32 бит. Маска сравнивается с IP-адресом побитно, слева направо. В маске подсети единицы соответствуют сетевой части, а нули - адресу узла.

Напишем программу, вычисляющую адрес подсети компьютера, по его известным IP-адресу и сетевой маске:

$ vim netaddr.c

netaddr.c.png

Скомпилируйте и запустите приложение:

$ gcc netaddr.c -o netaddr
$ ./netaddr

Пример 4 - Применение структур в геометрии

$ vim line.c

line.c.png