<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EstiloCorreo17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EstiloCorreo18
        {mso-style-type:personal;
        font-family:"Arial","sans-serif";
        color:navy;}
span.EstiloCorreo19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=ES-MX link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='color:#1F497D'>David:<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>                Te agradezco la
respuesta, pero es más que eso lo que quiero. Imaginemos esto:<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct do_record { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>struct do_hdr hdr; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>union { <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>union wf_srcrds wf_rcrd;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>union ph_srcrds ph_rcrd;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>byte data[1450]; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>} rcrd; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>union ph_srcrds { byte
ph_subrec[5 * sizeof(struct dri_phdb)]; };<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct dri_phdb { <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>               
dword time; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>  union { <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct basic_phdb basic; <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct ext1_phdb ext1; <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct ext2_phdb ext2; <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct ext3_phdb ext3; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>} <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>physdata; byte marker; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>byte reserved; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>word cl_drilvl_subt; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct basic_phdb { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>struct abc_group abc; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct ecg_group { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>short a; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>short b;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'> };<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Y yo defino una variable XYZ de
tipo do_record<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>do_record *XYZ;<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Existe una función cualquiera
que me retorna valores a la variable XYZ, entonces si sigo las definiciones
anteriores, podré llegar a los valores de las variables a y b. Y en eso me pierdo,
sobretodo cuando estoy en la parte de ph_rcrd.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Gracias<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span lang=ES style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De:</span></b><span
lang=ES style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
cconclase-bounces@listas.conclase.net
[mailto:cconclase-bounces@listas.conclase.net] <b>En nombre de </b>David<br>
<b>Enviado el:</b> Lunes, 28 de Mayo de 2007 10:09 a.m.<br>
<b>Para:</b> 'Lista de correo sobre C y C++'<br>
<b>Asunto:</b> Re: [C con Clase] [Bulk] Duda sobre uniones<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><span lang=ES style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:navy'>Hola </span><span lang=ES style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Juan
Pablo, no se si te he entendido bien pero si lo que quieres es acceder a ‘a y
b’ primero tienes que definir una variable de esa estructura:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>De esta manera:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct ecg_group { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>short a; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=ES style='color:black'>short
b;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'> } variable;
     
            //
 ‘variable’ es un tipo definido de la estructura ‘ecg_group’<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>variable.a =
25;             //
‘a’ contiene el numero 25.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>short x =
variable.a;      // x tendra lo que le hayas asignado
a la variable ‘a’, o sea 25.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:blue'>o de esta otra forma:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:blue'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct ecg_group { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>short a; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=ES style='color:black'>short
b;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'> };       
                       
// definición de la estructura.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:blue'>typedef </span><span
lang=ES style='color:black'>ecg_group variable;     
// definir un tipo de esa estructura.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:blue'> <o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>variable.a = 25;
                       
// Usar la variable de un tipo definido de la estructura en cuestion.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>Bueno, no se si te
referias a esto o que.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>Ten en cuenta que una
estructura se define como un bloque de datos que seran asignados a la variable
que definas de ese tipo de estructura.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>Para usar ese bloque de
datos tienes que crear una variable de ese tipo de estructura.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'>Espero haberte ayudado.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:navy'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:navy'><o:p> </o:p></span></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'>

<div>

<div class=MsoNormal align=center style='text-align:center'><span lang=ES
style='font-size:12.0pt;font-family:"Times New Roman","serif"'>

<hr size=2 width="100%" align=center>

</span></div>

<p class=MsoNormal><b><span lang=ES style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De:</span></b><span
lang=ES style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
cconclase-bounces@listas.conclase.net [mailto:cconclase-bounces@listas.conclase.net]
<b>En nombre de </b>Juan Pablo San Martín<br>
<b>Enviado el:</b> lunes, 28 de mayo de 2007 14:47<br>
<b>Para:</b> Lista de correo sobre C y C++<br>
<b>Asunto:</b> [Bulk] [C con Clase] Duda sobre uniones</span><span lang=ES
style='font-size:12.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p>

</div>

<p class=MsoNormal><span lang=ES><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES-TRAD>Estimados:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=ES-TRAD><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=ES-TRAD>               
Me entregaron el siguiente código para revisar, y la verdad es que me que
quedan unas dudas.  Tengo las siguientes estructuras y uniones:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct do_record { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>struct do_hdr hdr; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>union { <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>union wf_srcrds wf_rcrd;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>union ph_srcrds ph_rcrd;<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>byte data[1450]; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>} rcrd; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>union ph_srcrds { byte
ph_subrec[5 * sizeof(struct dri_phdb)]; };<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct dri_phdb { <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>               
dword time; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>  union { <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct basic_phdb basic; <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct ext1_phdb ext1; <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct ext2_phdb ext2; <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:35.4pt;text-indent:35.4pt'><span
lang=EN-US style='color:black'>struct ext3_phdb ext3; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>} <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>physdata; byte marker; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>byte reserved; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>word cl_drilvl_subt; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct basic_phdb { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>struct abc_group abc; <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>};<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>struct ecg_group { <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>short a; <o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt'><span lang=EN-US
style='color:black'>short b;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'> };<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:black'>               
</span><span style='color:black'>Lo que necesito es poder leer a y b, pero no
se como acceder a ellos (me pierdo en ph_rcrd). Alguna ayuda?<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'>De antemano, gracias.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:black'>Juan Pablo</span><o:p></o:p></p>

</div>

</div>

</body>

</html>