Article View: es.comp.os.linux.programacion
Article #15351Re: Uniones
From: Santiago Romero
Date: Mon, 10 Jul 2000 00:00
Date: Mon, 10 Jul 2000 00:00
46 lines
2143 bytes
2143 bytes
El Sun, 09 Jul 2000 10:53:25 +0200, kuantiko escribi�:
>Hola a todos.
>
> �Podr�a alguien darme una breve explicaci�n de lo que es una uni�n
>en C? Nunca las he usado, y lo �nico que he le�do es que son como una
>estrcutura en la que todos los elementos comparten direcci�n de
>memoria. �Qu� utilidad tienen?
ejemplo (en pseucodigo):
union MYWORD
{
unsigned short word;
unsigned char bytealto, bytebajo;
}
en este caso word ocupa la misma direccion que bytealto y bytebajo,
de modo que puedes acceder a este word completo, a su parte baja o
a su parte alta, haciendo que se modifique la cosa completa:
ej:
word = 0 (y tambien hace que bytealto=bytebajo=0)
bytebajo = 100 (y tambi�n hace que word=100).
etc...
puede servir para otras cosas (algun dia te puedes ver en un problema
similar) y en este caso te ahorraria hacer algo asi como:
word = bytealto = bytebajo = 0;
bytebajo = word = 100;
bytealto = 100; word = (100<<8) | word;
etc..
salu2!
--
ANTENA3 TV = MANIPULACION DE INFORMACION (=Telefonica).
"He instalado el Windows 2000 y me va sin problemas." (Pinocho)
_-----------------------------------------------------_
| NoP / Compiler -- sromero@unix-shells.com |
|-------------------------------------------------------|
| POWERED BY - Linux RedHat 6.0 - Reg. User #74.821 |
| http://web.jet.es/s.romero |
~-----------------------------------------------------~
Technical Details
Message-ID:
<slrn8mjgdl.q4.s.romero@compiler.linux.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<39683D85.4A4E4957@teleline.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,d9e2de11a81b412f X-Google-Attributes: gidf86c8,public From: s.romero@unix-shells.com (Santiago Romero) Subject: Re: Uniones Date: 2000/07/10 Message-ID: <slrn8mjgdl.q4.s.romero@compiler.linux.es> X-Deja-AN: 644655317 Content-Transfer-Encoding: 8bit References: <39683D85.4A4E4957@teleline.es> Content-Type: text/plain; charset=iso-8859-1 X-Trace: fu-berlin.de 963246090 2330469 62.36.111.225 (16 [39726]) Mime-Version: 1.0 User-Agent: slrn/0.9.6.2 (Linux) Reply-To: sromero@unix-shells.com Newsgroups: es.comp.os.linux.programacion