uint8_t uint32_t que c++ objective-c c

c++ - uint32_t - Cuál es la diferencia entre UInt8 y uint8_t



uint32_t arduino (3)

¿Cuál es la diferencia entre UInt8 y uint8_t , o UInt16 y unit16_t ?

¿Qué implica el _t ?


En C99, los tipos de enteros básicos disponibles (los que no tienen _t) se consideraron insuficientes, porque sus tamaños reales pueden variar según los diferentes sistemas.

Por lo tanto, el estándar C99 incluye definiciones de varios tipos enteros nuevos para mejorar la portabilidad de los programas. Los nuevos tipos son especialmente útiles en entornos integrados.

Todos los nuevos tipos tienen el sufijo _t y se garantiza que se definirán uniformemente en todos los sistemas.

Para obtener más información, consulte la sección de tipos enteros de ancho fijo del artículo de wikipedia en Stdint .


La principal diferencia es que los tipos uintX_t son estándar C definidos por C99 y más tarde, mientras que UIntX no lo es. Esto tiene implicaciones sobre cuán portátil es el código. El código que utiliza los tipos uintX_t se puede compilar en cualquier compilador C estándar sin ninguna otra dependencia. El código que usa UIntX por otro lado, debe definir esos tipos en sí mismo o depender de alguna biblioteca o marco que lo haga.

No creo que Objective-C como tal defina ningún tipo de entero adicional, pero puede ser que su marco (Coacoa, OpenStep?) Lo haga. Si su código no tiene sentido fuera del marco, use lo idiomático en el contexto del marco. De lo contrario, intente seguir los tipos estándar.


normalmente se usan como tipos de datos typedef. "_t" representa un tipo de datos typedef. damos tal nombre para que puedan ser utilizados y leídos fácilmente a través de todo el archivo o gran base de código.

* UInt8 y uint8_t - Char *

typedef unit8_t unsigned char

* UInt16 y unit16_t *

typedef unit16_t unsigned int (en un compilador de 16 bits)