[C con Clase] Handlers

Davidson, Steven srd4121 en njit.edu
Vie Feb 6 15:22:03 CET 2015


Hola Miguel Alejandro,

Primeramente, quiero aclarar que en cada posición del array (o vector) no
existe un puntero (o apuntador) a 'unsigned char', sino que hay 1 byte de
tipo 'unsigned char'. El único puntero es 'Data' en sí que apunta al primer
byte, el cual coincide con el primer elemento del array; o sea, 'Data[0]'.

En cuanto a la duda, 8+3 sólo existe en el código fuente. El compilador
realiza la suma por lo que tratará esta declaración como,

unsigned char Data[11];

Supongo que el programador optó por escribir 8+3 porque la separación tiene
un significado especial; seguramente los primeros 8 bytes significan algo,
mientras que los 3 últimos representan otra cosa. Claro que el comentario
dice que debería ser 16 bytes; supongo porque así no hay problemas de
alineamiento: bloque de 16 bytes en lugar de 11.


Espero que esto te oriente.

Steven


2015-02-06 3:44 GMT-05:00 Miguel Alejandro Jimenez Ramirez <
cerberbero en gmail.com>:

> Muchas gracias por la respuesta ,  muy indicada y la duda clarificada.
> pero ahora me surge otra duda la verdad.
>
> Si tengo una estructura como esta:
>
> typedef struct _MyStruct         /* message structure  */
> {
>
>   unsigned char      Data[8+3];           /* Data  be smart : make it
> 16 bytes */
>
>
>  }MyStruct;
>
>
> entonces yo puedo ver que voy a tener que tengo un vector de 11
> posiciones y en cada una de las posiciones voy a tener un apuntador a
> una variable tipo unsigned char. Este tipo de variable ocupa 1 Byte en
> memoria entonces todo el vector va a ser 11 Bytes. La verdad es para
> recibir un dato por un Puerto.
> Pero lo que no entiendo , y digo esto por que no fui yo quien
> desarrollo el programa, es para que hacen la operacion [8+3]. Que
> utilidad tendria en memoria? , muchas gracias si podrias ayudarme copn
> eso.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150206/3f519e2a/attachment.html>


Más información sobre la lista de distribución Cconclase