[C] typedef

di il
3 risposte

[C] typedef

Ciao, mi sono appena iscritto, e ho un problema con il C.
#include <stdio.h>
#include <stdlib.h>

main() {
    typedef struct {
       int larghezza;
    } larg;
    typedef struct {
       int altezza;
    } alt;
    typedef struct {
       int profondita;
    } pro;
    typedef union {
       larg flarg;
       alt falt;
       pro fpro;
    } fig;
    fig parall;
    parall.flarg.larghezza = 10;
    parall.falt.altezza = 20;
    parall.fpro.profondita = 30;
    printf("La larghezza del parallelepipedo e\' %d, ",parall.flarg.larghezza);
    printf("l'altezza e\' %d e ",parall.falt.altezza);
    printf("la profondita\' e\' %d.",parall.fpro.profondita);
    system("PAUSE>NUL");
}
Il compilatore (Dev-C++) non mi dà alcun errore, solamente che l'output è:
La larghezza del parallelepipedo e' 30, l'altezza e' 30 e la profondita' e' 30.
anzichè:
La larghezza del parallelepipedo e' 10, l'altezza e' 20 e la profondita' e' 30.
Qualcuno sa come risolvere? Ho sbagliato qualcosa?

3 Risposte

  • Re: [C] typedef

    Vedi la definizione dell'union. Union x definizione rende valido solo uno dei tre campi, non tutti e tre.
  • Re: [C] typedef

  • Re: [C] typedef

    Ok capito

    Ciao e grazie!
Devi accedere o registrarti per scrivere nel forum
3 risposte