Struct tag.fio{
Char last[100];
Char first[100];
Char otch[100];
}
Struct tag.people{
Struct tag_fio fio;
Char job[100];
}
Int main(){
Struct people man=
{{“Иванов”, “Иван”, “Иванович”},
”Электрик”};
printf(“ФИО %s%s%s” , man.fio.last, man.fio.first, man.fio.otch, man.fio.job);
Структуры как и обычные данные можно передавать функциям в качестве аргумента:
Struct tag_people{
Char name[100];
Char job[100];
Int old;};
Void sho_struct(
Int main(){
Struct tag_people
Show_struct(person);
Return 0;
}
Void show_struct(struct tag_people man){
Printf(“Имя %s \n”, man.name);
Printf(“проф %s \n” man.job);
Printf(“Возраст %d”, man.old);}
Функциям в качестве аргумента можно передавать и массивы структур.
Void show_struct(struct people mons[], int size);
#define n 2
Struct tag_people person[n]={
Char name[100];
Char job[100];
Int old;};
Void show(struct tag_people mons[], int size);
Main(){
Struct tag_people
{“иванов”, “электрик”, 30},
{“петров”, “Бухгалтер”, 45},};
Show (person, n);}
Void show (struct tag_people
Объединение.
Это тип данных позволяющий хранить различные типы данных в одной и той же области памяти.
Union var_i;
Float var_f;
Char var_ch;}
Используется для экономии памяти, но крайне редко используется. В один и тот же момент времени можно использовать только 1 тип из всех. Соответственно нужно ввести счетчик.
Struct tag_var{
Union tag-value value;
Short type_var;}
Main(){
Struct tag_var[3];
Var[0].tag_var=0;
Var[0].value.var_i=i0;
Var[1].type_var=1;
Var[1].value.var_f=2.2;
Var[2].type_var=2;
Перечисляемый тип задается Enum.
Enum tug_type{VK_INT, VK_FLOAT, VK_CHAR}
Enum tag_type var;