(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).