Информатика и технология программирования


Определение типа данных (спецификатор typedef) - часть 2


В заключение рассмотрим взаимоотношения между последовательностью определенных друг через друга типов данных и функций, которые их обрабатывают. Функция, которая получает переменную некоторого производного типа данных (или указателя на нее), выполняет операцию выделения составляющего типа, затем передает полученную переменную (или указатель на нее) следующей функции. Таким образом, последовательности определений типов данных обычно соответствует цепочка вызовов функций.


&#35include &#60stdio.h&#62
typedef struct data // Определение типа DATA -


{ // структурированный тип


int dd,mm,yy; // и типа PDATA - указа-


} DATA, *PDATA; // теля на него


typedef char *PSTR; // Определение типа PSTR-


// указатель на строку


typedef struct man // Определение типов -


{ // структура (MAN) и указа-


char name[20]; // тель на структуру (PMAN)


DATA days[10];
PSTR address;
} MAN, *PMAN;


MAN People[40]; // Массив структур типа MAN



extern void SetData(PDATA, PSTR);


void SetMan(PMAN p, PSTR nm, PSTR addr, PSTR dat)
{
int i;
for (i=0; i&#60 10; i++)
SetData(&#38p-&#62days[i], dat);
for (i=0; nm[i] !='\0'; i++)
p-&#62name[i] = nm[i];
p-&#62name[i] = '\0';
p-&#62address = addr;
}


void main()
{
int i,s,n;
for (i=0; i&#60 40; i++)
{
SetMan(&#38People[i],"Петров","Советская,14-45","12.06.77");
for (n=0,s=0; n&#60 10; n++)
s += People[i].days[n].dd;
}
}




Начало  Назад  Вперед



Книжный магазин