Tutorial de Lenguaje C                                                                                               Dr. Roberto Gómez


ESTRUCTURAS SIN NOMBRE

struct {
                long flag3;
                union {
                                struct (short s1; int num;) a3;
                                struct (char t2[10]; int num; char c2;) b3;
                            } u3;
                int i3;
} var3;
 

Ejemplo uso estructuras

/* Lista 10 clientes: nombre, valor, (de pedidos), dirección */
/* Dirección: número, calle, ciudad y */
/* país si no es francés */
/* o código postal y teléfono si es francés */
/* Programa que lee 10 clientes y los imprime clasificados */
/* según el valor de sus pedidos */

#include <stdio.h>
#define N 10

typedef struct {
                                int num;
                                char calle[20];

                                union {
                                                char pais[15];

                                                struct {
                                                                int tel;
                                                                int cp;
                                                            } tcp;
                                            } u;
                        } direc;

typedef struct {
                                char nom [15];
                                int val;
                                char flag;/* 'e'=extr ; 'f '=francés */
                                direc adre;
                            } cliente;

main()

{
                cliente cli[N];

/* llamando a las diferentes funciones */

                inicio(cli);
                acomoda(cli);
                imprime(cli);
}

inicia(p)
        cliente p[ ];
        {
                int i;
                char c;
 
                for (i=0; i!N; i=i+1)
                    {
                            printf(''*** Cliente %d ***\n'',i);
                            printf(''De el nombre valor numero calle : '');
                            scanf(''%s%d%d%s'',p[i].nom,&p[i].val,&p[i].adre.num,p[i].adre.rue);
                            printf(''extranjero o francés (e/f): '');
                            scanf(''%c'',&p[i],flag);
 
                            if ( p[i].flag == 'f' )
                                {
                                    printf(''De el teléfono y el código postal: '');
                                    scanf(''%d%d'',&p[i].adre.u.tcp.tel, &p[i].adre.u.tcp.cp);
                                }
                            else
                                {
                                    printf(''País:'');
                                    scanf(''%s'',p[i].adr.u.pays);
                                }
                            printf(''n\n'');
                    } /* fin del for */
                printf(''\n\n'');
} /* fin de la función */
 

MENÚ PRINCIPAL