Campos de bits en C

En C, podemos especificar el tamaño (en bits) de la estructura y los miembros de la unión. La idea es usar la memoria de manera eficiente cuando sabemos que el valor de un campo o grupo de campos nunca excederá un límite o está dentro de un rango pequeño. Por ejemplo, considere la siguiente declaración de … Continue reading «Campos de bits en C»

Truco de estructura

¿Cuál será el tamaño de la siguiente estructura?  CPP struct employee {     int     emp_id;     int     name_len;     char    name[0]; }; 4 + 4 + 0 = 8 bytes. ¿Y qué pasa con el tamaño de «nombre [0]». En gcc, cuando creamos una array de longitud cero, se considera una array de tipo incompleto, por lo que … Continue reading «Truco de estructura»

Operaciones en variables de estructura en C

En C, la única operación que se puede aplicar a las variables de estructura es la asignación. Cualquier otra operación (por ejemplo, verificación de igualdad) no está permitida en las variables de estructura . Por ejemplo, el programa 1 funciona sin ningún error y el programa 2 falla en la compilación. Programa 1 #include <stdio.h> … Continue reading «Operaciones en variables de estructura en C»

Programa C para almacenar registros de Estudiantes como Estructuras y Ordenarlos por Nombre

Dados los registros del estudiante con cada registro que contiene la identificación, el nombre y la edad de un estudiante. Escriba un programa en C para leer estos registros y mostrarlos ordenados por nombre. Ejemplos: Input: Student Records= { {Id = 1, Name = bd, Age = 12 }, {Id = 2, Name = ba, … Continue reading «Programa C para almacenar registros de Estudiantes como Estructuras y Ordenarlos por Nombre»

Inicializadores designados en C

El estándar C90 requiere que los elementos de un inicializador aparezcan en un orden fijo, el mismo que el orden de los elementos en la array o estructura que se inicializa. En ISO C99 puede dar los elementos en orden aleatorio, especificando los índices de array o los nombres de campo de estructura a los … Continue reading «Inicializadores designados en C»