Articles of typedef

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 ?

Convierta object-c typedef a su cadena equivalente

Suponiendo que tengo un typedef declarado en mi archivo .h como tal: typedef enum { JSON, XML, Atom, RSS } FormatType; Me gustaría construir una función que convierta el valor numérico de typedef en una cadena. Por ejemplo, si se envió el mensaje [self toString:JSON] ; devolvería ‘JSON’. La función se vería así: -(NSString *) […]

Repetición de typedefs: ¿inválido en C pero válido en C ++?

Me gustaría una referencia estándar de por qué el siguiente código desencadena una advertencia de conformidad en C (probado con gcc -pedantic ; “redefinición typedef“), pero está bien en C ++ ( g++ -pedantic ): typedef struct Foo Foo; typedef struct Foo Foo; int main() { return 0; } ¿Por qué no puedo definir un […]

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.

Destructores de tipos incorporados (int, char, etc.)

En C ++, el siguiente código da un error de comstackción: void destruct1 (int * item) { item->~int(); } Este código es casi el mismo, simplemente escribo el int a otro tipo y sucede algo mágico: typedef int myint; void destruct2 (myint * item) { item->~myint(); } ¿Por qué funciona el segundo código? ¿Un int […]

¿Cómo definir una estructura typedef que contenga punteros a sí misma?

Estoy escribiendo una LinkedList en C, el siguiente código representa mi definición de nodo. typedef struct { int value; struct Node* next; struct Node* prev; } Node; Entiendo (o creo que lo hago) que struct Node no es lo mismo que typedef struct Node . De acuerdo, mi código se comstack y se ejecuta como […]

¿Por qué necesito usar typedef typename en g ++ pero no VS?

Había pasado un tiempo desde que GCC me atrapó con este, pero simplemente sucedió hoy. Pero nunca he entendido por qué GCC requiere typedef typename dentro de las plantillas, mientras que VS y creo que ICC no lo hace. ¿Es typedef typename thing un “error” o un estándar de restricción excesiva, o algo que queda […]

puntero typedef con rareza

por favor considere el siguiente código: typedef struct Person* PersonRef; struct Person { int age; }; const PersonRef person = NULL; void changePerson(PersonRef newPerson) { person = newPerson; } Por algún motivo, el comstackdor se queja de que el valor de solo lectura no es asignable. Pero la palabra clave const no debe hacer que […]

uint8_t vs char sin signo

¿Cuál es la ventaja de usar uint8_t sobre unsigned char en C? Sé que en casi todos los sistemas uint8_t es solo un typedef para unsigned char , entonces ¿para qué usarlo?