No estoy totalmente seguro de C, pero C++ permite campos de bits sin nombre de 0 longitud. Por ejemplo:Uso práctico de campos de bits de longitud cero
struct X
{
int : 0;
};
- Primera pregunta: ¿Qué usos prácticos de esta puede que pensar?
- Pregunta dos: ¿Qué usos prácticos del mundo real (si los hay) conoce?
Editado el ejemplo después de la respuesta de hielo crimen
Editar: OK, gracias a las respuestas actuales que ahora saben el propósito teórico. Pero las preguntas se refieren a usos prácticos por lo que todavía mantienen :)
C99 permite matrices de longitud cero para admitir mejor las estructuras de tamaño dinámico. – falstro
@roe: Sí, bueno, es el equivalente de las matrices de 0 longitud asignadas dinámicamente, que son realmente útiles. Creo que el problema aquí es que la longitud del campo de bits debe ser una constante en tiempo de compilación. –
@roe: Su comentario es incorrecto. C ** no permite ** 'char a [0];' en ninguna versión del estándar. Por otro lado, 'char a [];' está permitido en estructuras en C99; se llama miembro flexible de la matriz y debe aparecer al final. 'char a [];' es ** not ** a "abreviado para 'char a [0];' ". –