<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>