Articles of typedef

Estructuras O opacas: ¿cómo deberían declararse?

He visto los dos estilos siguientes de declarar tipos opacos en las API de C. ¿Hay alguna ventaja clara al usar un estilo sobre el otro? Opción 1 // foo.h typedef struct foo * fooRef; void doStuff(fooRef f); // foo.c struct foo { int x; int y; }; opcion 2 // foo.h typedef struct _foo […]

¿Qué es ‘forward declaration’ y la diferencia entre ‘typedef struct X’ y ‘struct X’?

Soy un principiante en la progtwigción de C y sé la diferencia entre la statement de tipo de estructura y la statement de estructura typedef. Encontré una respuesta diciendo que si definimos una estructura como: typedef struct { some members; }struct_name; Entonces será como proporcionar un alias a una estructura anónima (ya que no tiene […]

¿Por qué usas typedef cuando declaras una enumeración en C ++?

No he escrito ningún C ++ en años y ahora estoy tratando de volver a entrar en él. Luego me encontré con esto y pensé en rendirme: typedef enum TokenType { blah1 = 0x00000000, blah2 = 0X01000000, blah3 = 0X02000000 } TokenType; ¿Que es esto? ¿Por qué se usa la palabra clave typedef aquí? ¿Por […]

Forward-declare enum en Objective-C

Tengo problemas con la visibilidad enum en un progtwig Objective-C. Tengo dos archivos de encabezado, y uno define un typedef enum . Otro archivo necesita usar el tipo typedef ‘d. En C directa, simplemente incluiría #include el otro archivo de encabezado, pero en Objective-C, se recomienda no usar #import entre los archivos de encabezado, en […]

Si hago un `typedef` en C o C ++, ¿cuándo debería agregar` _t` al final del tipo typedef’ed?

Estoy confundido cuando debería agregar los _t finales a los tipos _t . Por ejemplo, debería hacer esto: typedef struct image image_t; o esto: typedef struct image image; ¿Cuáles son las reglas generales? Otro ejemplo, debería hacer esto: typdef enum { ARRAY_CLOSED, ARRAY_OPEN, ARRAY_HALFOPEN } array_type_t; o esto: typdef enum { ARRAY_CLOSED, ARRAY_OPEN, ARRAY_HALFOPEN } […]

¿Cuándo debería usar typedef en C ++?

En mis años de progtwigción en C ++ (MFC), nunca sentí la necesidad de usar typedef , así que no sé para qué se usa. ¿Dónde debería usarlo? ¿Hay alguna situación real donde se prefiera el uso de typedef ? ¿O es realmente más una palabra clave específica de C?

Cómo funciona typedef para los indicadores de función

Creo que puedo estar sufriendo de la temida enfermedad del “progtwigdor accidental”, al menos cuando se trata de typedefs y punteros de función. Así que he estado experimentando con todo tipo de combinaciones que implican estos para analizar los resultados en función de todos los resultados que obtengo. Pero a medida que seguí probando diferentes […]

C ++ typedef interpretación de punteros const

En primer lugar, ejemplos de códigos: Caso 1: typedef char* CHARS; typedef CHARS const CPTR; // constant pointer to chars El reemplazo textual de CHARS se convierte en: typedef char* const CPTR; // still a constant pointer to chars Caso 2 typedef char* CHARS; typedef const CHARS CPTR; // constant pointer to chars El reemplazo […]

Aplicar la comprobación de tipo fuerte en C (rigor de tipo para typedefs)

¿Hay alguna forma de aplicar un cast explícito para los typedefs del mismo tipo? Tengo que lidiar con utf8 y algunas veces me confundo con los índices para el recuento de caracteres y el recuento de bytes. Entonces sería bueno tener algunos typedefs: typedef unsigned int char_idx_t; typedef unsigned int byte_idx_t; Con la adición de […]

¿Qué significa un typedef con paréntesis como “typedef int (f) (void)”? ¿Es un prototipo de función?

typedef int (fc_name) (void); Aquí fc_name es cualquier símbolo C válido. ¿Qué tan diferente es esto de un puntero a función typedef ?