Sie sind auf Seite 1von 1

UNIONES case '2': mostrar(todos,cont); break;

}
Una unión es una variable que puede contener, en } while(op!='3');
}
momentos diferentes, objetos de diferentes tipos y
tamaños, y el compilador hace seguimiento del tamaño y
requisitos de alineación. Las uniones proporcionan una void altas (struct comun vector[], int *cont)
forma de manipular diferentes clases de datos dentro de { if (*cont ==max)
una sola área de almacenamiento, sin incluir en el { printf("Vector Lleno");
programa ninguna información dependiente de la getch();
máquina. Las uniones pueden presentarse dentro de }
estructuras y arreglos y viceversa. La notación para tener else
acceso a un miembro de una unión es idéntica a la de las { clrscr();
printf("Nombre: "); gets(vector[*cont].nom);
estructuras anidadas. Es responsabilidad del programador
printf("Matricula: "); gets(vector[*cont].matri);
llevar el registro del tipo que está almacenado printf("Carrera: L/I: ");
actualmente en una unión; si algo se almacena como un vector[*cont].carrera=toupper(getche() );
tipo y se recupera como otro, el resultado depende de la
implementación. if (vector[*cont].carrera =='L')
{ printf("Costos: ");
Ejemplo: scanf("%d",&vector[*cont].dif.lic.costos);
printf("Contabilidad: ");
#include<conio.h> scanf("%d", &vector[*cont].dif.lic.conta);
#include<stdio.h> }
#include<ctype.h> else
#define max 40 { printf("Circuitos Digitales I: ");
scanf("%d", vector[*cont].dif.ing.dig);
struct licenciado printf("Fisica: ");
{ int costos; scanf("%d", &vector[*cont].dif.ing.fis);
int conta; }
}; (*cont)++;
}
struct ingeniero }
{ int fis;
int dig; void mostrar (struct comun vector[], int cont)
}; { int I;

union diferentes if (cont == 0 )


{ struct ingeniero ing; { printf("No hay datos"); getch(); }
struct licenciado lic; else
}; { clrscr();
for (i=0; i<cont; i++)
struct comun { clrscr();
{ char nom[40]; printf("Nombre: %s", vector[i].nom );
char matri[10]; printf("\nMatricula: %s" ,vector[i].matri);
char carrera; printf("\nCarrera: L/I: %c",vector[i].carrera );
union diferentes dif; if (vector[i].carrera == 'L')
}; { printf("\nCarrera: Lic. en Sist. Comp.");
printf("\nCostos:%d",vector[i].dif.lic.costos);
void altas ( struct comun vector[ ], int * cont); printf("\nContabilidad: %d",vector[i].dif.lic.conta);
void mostrar(struct comun vector[ ], int cont); }
else
void main() { printf("\nCarrera: Ingeniero en Computacion");
{ printf("\nCirc. Dig.: %d", vector[i].dif.ing.dig);
struct comun todos[max]; printf("\nFisica: %d", vector[i].dif.ing.fis);
char op; }
int cont=0; getch();
do }
{ clrscr(); }
puts("1) Altas"); }
puts("2) Mostrar");
puts("3) Salida");
printf("Opcion: ");
op=getch();
switch(op)
{ case '1': altas(todos,&cont); break;
M.I. Alma Leticia Palacios Guerrero
Uniones.doc

Das könnte Ihnen auch gefallen