volumen variacion valvula una tipos temperaturas temperatura sirve sintaxis sindrome significa segun sacar quimica que puede propiedades problemas positivas para otra negativas minima matematicos manera irritable intestino incompetente ileocecal hielo haustras grado funciones funcion fisiopatologia fisicas estructuras estructura escribir entre ejercicios ejemplos diferencia densidad declara datos congelacion con competente como cm3 cero caracteristicas biotina beneficios bajo articulo agua c++ c bit-fields colon

c++ - variacion - ¿Qué significa ''temperatura sin signo: 3'' en una estructura o unión?



variacion de temperatura maxima y minima (4)

Posible duplicado:
¿Qué significa este código C ++?

Estoy tratando de asignar una estructura C a Java usando JNA. Me encontré con algo que nunca he visto.

La definición de struct es la siguiente:

struct op { unsigned op_type:9; //---> what does this mean? unsigned op_opt:1; unsigned op_latefree:1; unsigned op_latefreed:1; unsigned op_attached:1; unsigned op_spare:3; U8 op_flags; U8 op_private; };

Puedes ver que una variable se define como unsigned op_attached:1 y no estoy seguro de qué significaría eso. ¿Eso afectaría el número de bytes que se asignarán para esta variable en particular?


Declara un campo de bit ; el número después de los dos puntos da la longitud del campo en bits (es decir, cuántos bits se utilizan para representarlo).


El modificador de dos puntos en los tipos integrales especifica cuántos bits debe tomar el int.


Esta construcción especifica la longitud en bits para cada campo.

La ventaja de esto es que puedes controlar el sizeof(op) , si tienes cuidado. el tamaño de la estructura será la suma de los tamaños de los campos en el interior.

En su caso, el tamaño de op es de 32 bits (es decir, sizeof(op) es 4).

El tamaño siempre se redondea al siguiente múltiplo de 8 para cada grupo de xxx no firmado: yy; construir.

Eso significa:

struct A { unsigned a: 4; // 4 bits unsigned b: 4; // +4 bits, same group, (4+4 is rounded to 8 bits) unsigned char c; // +8 bits }; // sizeof(A) = 2 (16 bits) struct B { unsigned a: 4; // 4 bits unsigned b: 1; // +1 bit, same group, (4+1 is rounded to 8 bits) unsigned char c; // +8 bits unsigned d: 7; // + 7 bits }; // sizeof(B) = 3 (4+1 rounded to 8 + 8 + 7 = 23, rounded to 24)

No estoy seguro de recordar esto correctamente, pero creo que lo hice bien.


unsigned op_type:9;

Significa que op_type es una variable entera con 9 bits.