vuott   07-09-2022, 01:43
#6
(07-09-2022, 01:07)tincho escribió: luego todos tienen 32 bits

Si la máquina es de 64 bits, entonces el tipo de datos unsigned long ocupa 8 bytes (64 bits).

    unsigned level:6  ;  ------
    unsigned :1 ;                 |
    unsigned complex:1 ;   |   16 bit en total
    unsigned type:7 ;          |
    unsigned deleted:1 ;----
    unsigned short words ; 16 bit
    unsigned long xlow ;    64 bit
    unsigned long ylow ;    64 bit
    unsigned long zlow ;    64 bit
    unsigned long xhigh ;   64 bit
    unsigned long yhigh ;   64 bit
    unsigned long zhigh ;   64 bit
    } Elm_hdr ;
La Estructura ocupa en total 56 Byte.

(07-09-2022, 01:24)vuott escribió: se redondea a la palabra (word) de la máquina, que suele ser igual a la de un "int" (como Integer en Gambas)

Bueno, prueba este codigo en Gambas para ver la memoria ocupada por una pequeña Estructura, formada por solo los 5 Campos de la tu Estructura 'Elm_hdr':

Código:
Private Extern calculus() As Long In "/tmp/campos"

Public Sub Main()

  Dim l As Long

  Creaso()
  
  l = calculus()
  Print "Tamaño en total de los Campos de la Estructura 'Solo_Campos': \e[1m"; l; "\e[0m byte"

End

Private Procedure Creaso()
  
  File.Save("/tmp/campos.c", "typedef struct {\n" &
                             "   unsigned level:6 ;\n" &
                             "   unsigned :1 ;\n" &
                             "   unsigned complex:1 ;\n" &
                             "   unsigned type:7 ;\n" &
                             "   unsigned deleted:1 ;\n" &
                             "} Solo_Campos;\n\n" &
                             "long int calculus() {\n" &
                             "  return sizeof(Solo_Campos);\n}")
  
  Shell "gcc -o /tmp/campos.so /tmp/campos.c -shared" Wait
  
End
En una maquina de 64bit el resultado del tamaño de esta pequeña Estructura es = 4 bytes (32 bits), como ya he escrito, especificados como sigue:
16 bits ocupados por los 5 Campos + 16 bits no ocupados.
(...pero que en la real Estructura "Elm_hdr" serán ocupados por el Miembro unsigned short words).
Última modificación: 07-09-2022, 12:34 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.