Articles of struct

Justificación del contenedor_de macro en linux / list.h

En la implementación de las listas del kernel de Linux en /include/linux/list.h , ¿cuál es la razón de ser de la primera línea (pegada a continuación) del container_of macro? const typeof( ((type *)0)->member ) *__mptr = (ptr); En un ejemplo de código mío, eliminé esta línea y cambié la definición a #define container_of(ptr, type, member) […]

¿Por qué GCC no optimiza las estructuras?

Los sistemas exigen que ciertas primitivas estén alineadas con ciertos puntos dentro de la memoria (entradas a bytes que son múltiplos de 4, cortos a bytes que son múltiplos de 2, etc.). Por supuesto, estos se pueden optimizar para perder el menor espacio en el relleno. Mi pregunta es por qué GCC no hace esto […]

Cómo convertir cadena a dirección IP y viceversa

¿cómo puedo convertir una cadena ipAddress (struct in_addr) y viceversa? y ¿cómo convierto inigned long ipAddress? Gracias

Diseño en memoria de una estructura. estructura de matrices y matriz de estructuras en C / C ++

En C / C ++ supongamos que defino una estructura simple llamada point siguiente manera. struct test { double height; int age; char gender; } Para una instancia específica de esta estructura, digamos que la test A es A.height, A.age, A.gender contiguos en la memoria? De manera más general, ¿cómo se ven los diseños en […]

¿Hay algún inconveniente para pasar las estructuras por valor en C, en lugar de pasar un puntero?

¿Hay algún inconveniente para pasar las estructuras por valor en C, en lugar de pasar un puntero? Si la estructura es grande, obviamente existe el aspecto ejecutado de copiar muchos datos, pero para una estructura más pequeña, básicamente debería ser lo mismo que pasar varios valores a una función. Es quizás incluso más interesante cuando […]

¿Por qué C tiene una distinción entre -> y.?

OK, esto no tiene consecuencias serias, pero me ha estado molestando por un tiempo: ¿Hay alguna razón para la distinción entre -> y . operadores? Por supuesto, la regla actual es esa . actúa sobre una estructura, y -> actúa sobre un puntero-a-estructura (o unión). Pero así es como funciona en la práctica. Seamos una […]

Copiar struct a struct en C

Quiero copiar una estructura idéntica en otra y luego usarla como una comparación con la primera. ¡El problema es que mi comstackdor me advierte cuando estoy haciendo esto! Debería hacerlo de otra manera o estoy haciendo esto mal: En el archivo de encabezado: extern struct RTCclk { uint8_t second; uint8_t minute; uint8_t hour; uint8_t mday; […]

C typedef del puntero a la estructura

Me encontré con el siguiente código: typedef struct { double x; double y; double z; } *vector; ¿Es esta una definición de tipo válida? El código comstack y funciona bien. Solo tenía curiosidad si esta es una práctica común.

¿Cuándo debería usar Struct vs. OpenStruct?

En general, ¿cuáles son las ventajas y desventajas de usar un OpenStruct en comparación con un Struct? ¿Qué tipo de casos de uso generales encajarían en cada uno de estos?

¿Inicia la inicialización del lenguaje de progtwigción C / C ++?

Podría hacer una inicialización de estructura con código: struct struct_type_id struct_name_id = { value1, value2, value3 }; pero no pudo con: struct struct_type_id struct_name_id; struct_name_id = { value1, value2, value3 }; ¿Por qué podría hacerlo con el primero, pero no con el último con gcc, g ++, vc2008, vc6? En otras palabras, ¿por qué el […]