next up previous contents
Next: Enumerações Up: Tipos agregados e derivados Previous: Estruturas   Sumário


Uniões

Uma união permite que uma dada área de memória seja tratada como variáveis de tipos diferentes em instantes de tempos diferentes. Uniões são definidas e acessadas de forma similar a estruturas, usando a palavra chave union ao invés de struct.

A título de exemplo, considere a situação onde se queira obter a representação interna de um número em ponto flutuante especificado na linha de comando. O programa a seguir pode ser usado para imprimir esta representação em octal:

#include <stdlib.h>

int main(int argc, char *argv[]) {
  union {
    float f;
    unsigned int i;
  } num;

  if (argc == 2) {
    num.f = atof(argv[1]);
    printf("%f tem representacao octal %o\n",
           num.f, num.i);
  }

  return 0;
}

O compilador se encarrega de reservar espaço para armazenar dados de tamanho do maior dos membros da união.



Ivan L. M. Ricarte 2003-02-14